http://poj.org/problem?id=1144
裸的求割点。
u是割点的条件:u是根且有大于一个的儿子,或者u不是根,且u有一个儿子v使得low[v]>=dfn[u]。
code:
#include <stdio.h>
#include <string.h>
const int maxn = 100 + 5;
int edge[maxn][maxn];
int bridge[maxn][maxn], cut[maxn];
int low[maxn], dfn[maxn], vis[maxn];
int root, rt_son;
void cut_bridge(int cur, int father, int dep, int n) {
//注意:对于每个连通块取一个点x调用cut_bridge(x,-1,0,n),其中n为点数。
vis[cur] = 1;
dfn[cur] =......
阅读全文