其他分享
首页 > 其他分享> > 【题解】(模拟赛)游戏

【题解】(模拟赛)游戏

作者:互联网

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