首页 > 其他分享 >『做题记录』[AGC032B] Balanced Neighbors

『做题记录』[AGC032B] Balanced Neighbors

时间:2023-12-08 21:58:30浏览次数:30  
标签:Neighbors 连通 ch 补图 Balanced 节点 AGC032B

[AGC032B] Balanced Neighbors

link:https://atcoder.jp/contests/agc032/tasks/agc032_b

Description

  给定整数 \(N\) ,构造一个从 \(1\) 到 \(N\) 编号的 \(N\) 个节点的无向图,使得:

  • 该图不含有重边和自环,并且是连通的。
  • 每个节点的所有邻接节点的编号之和相同。

  \(N \leq 100\)

Solution

  比较小巧的构造题,由于某谷上的题解过于依托,于是浅写一下。

  这道题的突破口在于找到图上不因所在节点(就是判断是否符合条件的点)不变的东西,那就是图上所有点的编号和。

  想到这一点问题就迎刃而解了。考虑构造补图,对于补图而言,每个节点及其相邻点的编号和相同。用图片表示会更直观些:

  有一种构造是对于奇数,补图分为 \(\{n\},\{1, n-1\}, \{2, n-2\}\dots\) 的连通块;对于偶数,补图分为 \(\{1, n\},\{2, n-1\}\dots\) 的连通块。由此只要构造好补图的每个连通块,输出补图即可。

Code

点击查看代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
#define mp make_pair
#define vi vector<int>
#define eb emplace_back
const int N = 1e5+5, MOD = 998244353, INF = 2e9;
inline int read() {
	register int x = 0, f = 1;
	register char ch = 0;
	while(ch < 48 || ch > 57) {
			ch = getchar();
			if (ch == '-') f = -1;
		}
	while(ch >= 48 && ch <= 57) x = x*10+(ch^48), ch = getchar();
	return f*x;
}
int main() {
	int n = read();
	if (n&1) {
		printf("%d\n", n*(n-1)/2-n/2);
		for (int i = 1; i <= n; ++i)
		for (int j = i+1; j <= n; ++j)
			if (i+j != n) printf("%d %d\n", i, j);
	}
	else {
		printf("%d\n", n*(n-1)/2-n/2);
		for (int i = 1; i <= n; ++i)
		for (int j = i+1; j <= n; ++j)
			if (i+j != n+1) printf("%d %d\n", i, j);
	}
	return 0;
}

Summary

标签:Neighbors,连通,ch,补图,Balanced,节点,AGC032B
From: https://www.cnblogs.com/BlackCrow/p/17889120.html

相关文章

  • Paper Reading: Oversampling with Reliably Expanding Minority Class Regions for I
    目录研究动机研究背景研究目的文章贡献本文方法可靠的扩展少数类区域的过采样方法描述方法分析多分类的OREM-MOREM和Boosting的结合计算复杂度实验结果二分类数据集实验实验设置对比实验消融实验调参实验多分类数据集实验对比实验消融实验OREMBoost实验实验设置对比实验优点......
  • The 2023 ICPC Asia Hefei Regional Contest Test D. Balanced Array
    Preface这题赛场上出了个关键点基本都想到的做法,但因为一个地方卡住了没过去导致不得不选择弃掉这道题赛后补了下发现\(O(n\logn)\)的做法是只差临门一脚了,但\(O(n)\)的做法还是trick性挺强的Solution首先考虑枚举\(k\),不难发现此时合法的前缀一定是个连续的区间,其中区间的......
  • 【刷题笔记】110. Balanced Binary Tree
    题目Givenabinarytree,determineifitisheight-balanced.Forthisproblem,aheight-balancedbinarytreeisdefinedas:abinarytreeinwhichthedepthofthetwosubtreesofeverynodeneverdifferbymorethan1.Example1:Giventhefollowingtree......
  • Maximum Balanced Circle
    here首先根据题意,我们不难有数字是连续的这种感悟。而且限制是值域上的,从下标入手发现难以突破,便从值域上入手。从小到大考虑每个数字,然后dp,可以参考这篇题解。至于方案的输出,有两种情况。只有自己\(i\)和\(i-1\),直接输出即可。有自己和\(i-1\)的环,定义print输出环,且最大......
  • SpringCloud复习:(2)@LoadBalanced注解的工作原理
    @LoadBalanced注解标记了一个RestTemplate或WebClientbean使用LoadBalancerClient来进行负载均衡。LoadBalancerAutoConfiguration类给带注解的@RestTemplate添加了拦截器:LoadBalancerInterceptor.具体流程如下:首先定义一个LoadBalancerInterceptor然后定义了一个RestTemplateC......
  • Paper Reading: Sample and feature selecting based ensemble learning for imbalanc
    目录研究动机文章贡献本文方法基于聚类的分层随机欠采样特征选择样本和特征选择的集成学习基于随机森林的SFSHEL实验结果数据集和实验设置KEEL数据集的比较HeartFailure数据集的比较优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限......
  • @LoadBalanced注解实现负载均衡功能过程
     基本流程如下:拦截我们的RestTemplate请求http://userservice/user/1RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-serviceDynamicServerListLoadBalancer根据user-service到eureka拉取服务列表eureka返回列表,localhost:8081、localhost:8082I......
  • CF1852B Imbalanced Arrays 题解
    CF1852BImbalancedArrays题解Links洛谷CodeforcesDescription对于一个给定的长度为\(n\)的数组\(A\),定义一个长度为\(n\)的数组\(B\)是不平衡的当且仅当以下全部条件满足:\(-n\leqB_{i}\leqn\)且\(B_{i}\ne0\)。即每个数在\([-n,n]\)内且不为\(0\)。......
  • 平衡二叉树(Balanced Binary Tree)
    平衡二叉树(BalancedBinaryTree)平衡二叉树是一种特殊的二叉搜索树,它具有以下特点:每个节点的左子树和右子树的高度差不超过1。所有的子树也都是平衡二叉树。通过保持平衡性,平衡二叉树可以在最坏情况下仍然具有较好的性能,保证查找、插入和删除操作的时间复杂度为O(logn)。......
  • Paper Reading: Hashing-Based Undersampling Ensemble for Imbalanced Pattern Class
    目录研究动机文章贡献本文方法整体流程基于哈希的子空间划分方法基于距离的样本选择实验结果数据集和实验设置不同子空间划分方法的影响不同加权方案的抽样与其他方法比较优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到......