hdu 3836
题意:
最少加几条边使得整张图scc。
思路:
先求出强连通分量对scc重新建图,预处理出新图每个点的入度和出度,统计出新图中出度为0和入度为0的点的个数分别为out0和in0,答案就是max(out0,in0)。
poj 2186
题意:
有m对奶牛之间的喜欢关系,喜欢关系有传递性,现在问有多少牛被所有的牛喜欢?(或有哪些牛)
思路:
先求出强连通分量对scc重新建图,预处理出新图每个点的出度,设出度为0的点数为cnt,如果cnt>1,就无解,否则cnt就是1,有解,遍历每个点属于的scc如果这个scc在新图中出度为0,就+1。(把这个点加入答案)
poj 2553
题意:
给你一个图,现在定义一个点u是牛逼的,如果u可以到达的所有点也都可以到达u,问有哪些点是牛逼的。
思路:
先求出强连通分量对scc重新建图,预处理出新图的每个点的出度,出度为0的scc里面的点就是牛逼的。
poj 3352
题意:
最少加几条边使整张图边bcc。
思路:
先求出边bcc然后对边bcc重新建图,预处理出新图每个点的度数,设度数为1的点数为cnt,最少需要加 (cnt+1)/2 条边就能使整条边bcc。
poj 2942 边双连通+染色法判二分图
题意:
一些骑士,他们有些人之间有矛盾,现在要求选出一些骑士围成一圈。
圈要满足如下条件:
1.人数大于1。
2.总人数为奇数。
3.有仇恨的骑士不能挨着坐。
问有几个骑士不能和任何人形成任何的圆圈?
思路:
首先反向建立补图,然后问题转换成在图中找奇圈,圈肯定出现在双联通分量中,则求出图的双联通分量,又通过特性知道,一个双联通分量有奇圈则其中的点都可以出现在一个奇圈中。而对于奇圈的判定可以用交叉染色判断是非为二分图,二分图中肯定无奇圈。