割点割边 模板

来源:互联网 发布:java权限框架哪个好 编辑:程序博客网 时间:2024/04/30 13:42
                              割点和割边struct node{int y,pre;};node a[N];int pre[N],sign[N];int dfn[N],low[N];int tot,lenn;int n,m,len;void init(){memset(pre,-1,sizeof(pre));memset(sign,false,sizeof(sign));len=1;tot=1;}void addpage(int s,int t){a[len].y=t;a[len].pre=pre[s];pre[s]=len++;}void dfs(int x,int s){dfn[x]=low[x]=tot++;sign[x]=true;for(int i=pre[x]; i!=-1; i=a[i].pre){int y=a[i].y;if(y==s) continue;if(!sign[y]) {dfs(y,x);low[x]=min(low[x],low[y]);}else low[x]=min(low[x],low[y]);}}int main(){ init();repf(i,1,n)        if(!sign[i])dfs(i,-1);   return 0;} 对于边x~y,如果low[x]>dfn[y]||low[y]>dfn[x]即为割边对于点u是图的割点当切仅当u存在一个字节点v.使得low[v]>=dfn[u]
原创粉丝点击