***桥的概念:无向连通图中,如果删除某边后,图变 成不连通,则称该边为桥。***
***一条边(u,v)是桥,当且仅当(u,v)为树枝边,且 满足dfn(u)<low(v)(前提是其没有重边),非树枝边不可 能是桥
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=122091#problem/C***
***在这里还用了vector来保存一个图,这样会省去很大的空间***
#include#include #include #include #include #include #include using namespace std;#define N 100005int n, m;int dfn[N], low[N], Father[N];int Time;vector > G;struct node{ int x, y;}bridge[N];int cmp(node a, node b){ if(a.x!=b.x) return a.x bridge[ans].y) swap(bridge[ans].x, bridge[ans].y); ans++; } } sort(bridge, bridge+ans, cmp); printf("%d critical links\n", ans); for(int i=0; i