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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。