摘要: http://poj.org/problem?id=3694给你一个存在桥的无向连通图,每次增加一条边,问每次增加边之后还剩多少个桥。朴素的办法就是每输入一次tarjan求一次桥的个数,肯定会tle;正确的做发是,首先求出改图的桥的数量,在tarjan的过程中里用并查集把不是桥的边缩为一点,然后得到一棵树,每加入一条边,就肯定会形成一个环,,然后删除环中石桥的边,最后得出总的桥的数量。删除的过程就是检查是否石桥是就有cut--;View Code #include <cstdio>#include <cstring>#include <vector>#inc 阅读全文
posted @ 2012-02-15 20:48 E_star 阅读(292) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3177http://poj.org/problem?id=3352把3177的代码直接贴到3352也就a了。3177:题意是给一个图,注意这里有重边,问至少添加多少条边才能使是该图成为边双连通图。首先求出该图中的割边(桥)然后删除桥,剩下的就都是边双连通分量了,然后将其缩成一个点,再把桥加上就死形成了一棵树,边连通度为1.记录叶子节点数ans,则至少添加(ans+1)/2个节点才能使原图成为边双连通图。此时low[]值相同的是同一个连通分量,注意在求tarjan是不能染low[i]取到low[ifather]的值,这样整个图的low[i]就 阅读全文
posted @ 2012-02-15 15:17 E_star 阅读(333) 评论(0) 推荐(0)
摘要: 1062* 昂贵的聘礼 枚举等级限制+dijkstra1087* A Plug for UNIX 2分匹配1094 Sorting It All Out floyd 或 拓扑1112* Team Them Up! 2分图染色+DP1125 Stockbroker Grapevine FLOYD1135 Domino Effect 最短路1149* PIGS 网络流1161* Walls floyd1201 Intervals 差分约束1236* Network of Schools 强联通1251 Jungle Roads MST1273 Drainage Ditches 最大流1274 Th 阅读全文
posted @ 2012-02-15 11:20 E_star 阅读(307) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1904很多人都说是二分匹配题目,可是我还没有接触他呢。悲剧啊。不过这道题要求强连通分量做。king有n个儿子,这边有n个beautiful mm,每个儿子可以喜欢多个mm,但是只能和一个结婚。最后king的wizard给出了一个完美匹配。可是国王比较定眼,想知道每个儿子所有可以结婚的情况。儿子编号(1,n) mm编号(n+1, 2*n),儿子喜欢mm就建立一条边 u ->v 如果儿子取了mm 在建立一条边 v->u然后求强连通分量,在一个强连通分量里的是他所有可能结婚的情况View Code #include <iostr 阅读全文
posted @ 2012-02-15 09:08 E_star 阅读(185) 评论(0) 推荐(0)