[POJ2942]Knights of the Round Table(点双连通分量+染色找奇环)

题目

Knights of the Round Table

题目大意

N N N个骑士,给出 M M M对仇恨关系,若 i i i j j j有仇恨,他们就不能在圆桌会议上坐相邻的位置。请你求出有多少个骑士无法参加任何一个圆桌会议(例如但不仅限于,某个骑士与其他所有骑士有仇恨关系,他就不能参加任何一个圆桌会议)。要求每个圆桌会议必须由奇数个人参加。

分析

考虑原图的补图,即每个骑士可以和哪些骑士相邻。
一个圆桌会议显然对应的是图上的一个奇环(由奇数个点组成的环),所以我们要求的就是有哪些点不在任何一个奇环上。

下面证明两个引理。


引理一:如果两个点在不同的点双连通分量里面,它们就不可能在一个环里。

证明:点双连通分量是最大的不含割点的连通分量,如果两个点在一个环里,就可以把环
下图中的 A A A B B B及割点一起合并起来,这样就形成了一个更大的点双连通分量,与条件矛盾。
图示1

引理二:一个点双连通分量只要有一个奇环,那么这里面的所有点都属于某个奇环。

证明:找到这个点双中的奇环,考虑某个不在这个奇环上的点,那它一定是这样连在这个奇环上的:
图示2
而不可能是这些情况(否则红点就成了割点):
图示3
(上图没有列举完其他情况,但是可以发现其他情况都是不可能的)

那么讨论一下链 i → A → j i\to A\to j iAj的长度:

  • 若为奇数:那么环 i → A → j → x i\to A\to j\to x iAjx是奇环;
  • 若为偶数:那么链 i → B → C → j i\to B\to C\to j iBC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值