题目
题目大意
有 N N N个骑士,给出 M M M对仇恨关系,若 i i i与 j j j有仇恨,他们就不能在圆桌会议上坐相邻的位置。请你求出有多少个骑士无法参加任何一个圆桌会议(例如但不仅限于,某个骑士与其他所有骑士有仇恨关系,他就不能参加任何一个圆桌会议)。要求每个圆桌会议必须由奇数个人参加。
分析
考虑原图的补图,即每个骑士可以和哪些骑士相邻。
一个圆桌会议显然对应的是图上的一个奇环(由奇数个点组成的环),所以我们要求的就是有哪些点不在任何一个奇环上。
下面证明两个引理。
引理一:如果两个点在不同的点双连通分量里面,它们就不可能在一个环里。
证明:点双连通分量是最大的不含割点的连通分量,如果两个点在一个环里,就可以把环
下图中的 A A A, B B B及割点一起合并起来,这样就形成了一个更大的点双连通分量,与条件矛盾。
引理二:一个点双连通分量只要有一个奇环,那么这里面的所有点都属于某个奇环。
证明:找到这个点双中的奇环,考虑某个不在这个奇环上的点,那它一定是这样连在这个奇环上的:
而不可能是这些情况(否则红点就成了割点):
(上图没有列举完其他情况,但是可以发现其他情况都是不可能的)
那么讨论一下链 i → A → j i\to A\to j i→A→j的长度:
- 若为奇数:那么环 i → A → j → x i\to A\to j\to x i→A→j→x是奇环;
- 若为偶数:那么链 i → B → C → j i\to B\to C\to j i→B→C→