专栏文章
题解:AT_arc207_b [ARC207B] Balanced Neighbors 2
AT_arc207_b题解参与者 6已保存评论 5
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @minnat3d
- 此快照首次捕获于
- 2025/12/02 05:12 3 个月前
- 此快照最后确认于
- 2025/12/02 05:12 3 个月前
你好吗?这题需要你用忍者的态度来观察呦。
首先你需要用手写的从前,来跨时代的发现 的情况不可能存在。
接着你看甜甜的样例,当 , 只不能到 , 只不能到 , 只不能到 ,ok 以此类推。
然后我们猜测对于 是偶数的时候肯定有答案,答案应该是对于每个 ,都有 (但是它给我们玩了个黑色幽默,这只是特殊解)。
怎么了,这个样例明明就只有一点点,然后你从样例里啥也看不出了。。。(傻笑)
通过刚刚的猜测,我们可以注意到偶数当我们构造一个循环,对于 之间的有着开不了口的距离 ,其他点之间的距离为 或 。
因此, 为偶数的构造方法即为:
对于点 ,将点 与 连边,当 我们将点 。
如果你现在就交的话,你会发现说好的幸福呢?对不起,它给了让你安静的 Wa,你还是挂了恰好一半的点。
胡扯,我们追求完美主义,给我一首歌的时间,你就会想起其实还是有奇数解的,构造出 的偶数情况下的图,并将 与 连边。
CPPcin>>n;
if(n<6) cout<<"-1",exit(0);
int t=n>>1;
cout<<t*(t-1)+(n&1)*t<<'\n';
rep(i,1,t){
rep(j,t+1,t+t){
if(i+j!=t+t+1) cout<<i<<' '<<j<<'\n';
}
if(n&1) cout<<i<<' '<<n<<'\n';
}
相关推荐
评论
共 5 条评论,欢迎与作者交流。
正在加载评论...