Description
有$n(n\le 1000)$个骑士,$m(m\le1000000)$对骑士互相憎恨,要3个以上的骑士且保证互相憎恨的骑士不会坐在相邻位置才能开会议,求多少骑士一定不能参加任何一次会议。
多组测试数据。
Input
每组测试数据:
第一行:两个整数,$n$、$m$意义如题。
接下来$m$行:每行两个整数$k_1$和$k_2$,表示这两个骑士互相憎恨。
当$n$和$m$为0时文件输入结束。
Output
一个整数,一定不能参加的骑士的个数(原题样例有毒)。
Solution
在不互相憎恨的骑士间连一条边,能开会的骑士一定在一个简单奇圈上,而简单奇圈一定在双连通分量上,只要这个双连通分量不是二分图就行了。
问题就转化成找不在不是二分图的双连通分量上的点的个数。
Code
|
|