【题解】(模拟赛)游戏
作者:互联网
https://fzoi.top/contest/97/problem/5088
题意
现在有\(2n\)个人围成一圈,第\(i\)个人与第\(i-1\)和\(i+1\)的人相邻,\(1\)与\(2n\)也相邻。这些人来自\(n\)个不同的学校,每个学校都派了两个人来参加。
对于同一个学校的两个人,他们不希望在游戏中属于同一个阵营。同时,也不能存在连续三个人在一个阵营的情况。
要求找到一个分配方案,或者报告无解。
\(n\le 5\times 10^5\)
题解
首先看到“每个学校都派出了两个同学”,可以往二分图的方向考虑。
那么我们将同一学校的同学两两连边,然后我们还需要满足连续三个人不在二分图的一边的条件。
可以考虑将\(1,2\)连边,\(3,4\)连边,\(5,6\)连边...,这样就满足了连续三个人必有两个不在同一集合。
考虑这样加边之后是否仍然是一个二分图,不考虑同一学校之间的边,整个图如下图所示
注意,图的两列点不是二分图的两端
我们考虑一个奇环长什么样子,如图
由于一个点最多只能与两个点连边,所以显然不可能出现图中编号\(2i\)的点,即图中只有偶环。
由于只有偶环,所以这是一个二分图,二分图染色即可输出方案。所以说其实不可能无解。
时间复杂度\(O(n+m)\),其中\(m=4n\)。
标签:二分,连边,游戏,题解,偶环,学校,考虑,模拟 来源: https://www.cnblogs.com/hzy1/p/15563177.html