割边
来源:互联网 发布:程序员伪造工作经验 编辑:程序博客网 时间:2024/05/01 15:55
#include <cstdio>#include <iostream>using namespace std;int dfn[199999],low[199999],n,m,root;int num;int f[199999];int head[199999],to[199999],net[199999],cnt;void add(int x,int y){ cnt++; to[cnt]=y; net[cnt]=head[x]; head[x]=cnt;}int dfs(int x,int fat){ int c=0; dfn[x]=++num; low[x]=num; for(int i=head[x];i;i=net[i]) { int tmp=to[i]; if(!dfn[tmp])//当这个点没被访问过 { c++; dfs(tmp,x); low[x]=min(low[tmp],low[x]); if(x!=root&&low[tmp]>dfn[x]) printf("%d-%d\n",x,tmp);//当这个点删去跟父亲的边时,这个点连父亲都到不了时,这个点与父节点之间的边即为割边 } else { if(tmp!=fat) { low[x]=min(low[x],dfn[tmp]);//这个拓展点不是x的父亲时更新x的low值 } } }}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); add(x,y); add(y,x); } int ans=0; for(int i=1;i<=n;i++) if(!dfn[i])//遍历整张图 { root=i; dfs(i,i); } return 0;}
1 0
- 割点、割边
- 割点、割边
- 割点 割边
- 割点、割边
- 割边
- 割边
- 割边
- 割点和割边
- 割点,割边模板
- 割点&割边模板
- 割点和割边
- 割点 割边 模板
- 割边与割点
- 割点与割边
- 割点、割边、双连通分支
- tarjan算法之 割边,割点
- 割点与割边问题
- 割点与割边练习
- BZOJ P4562:[Haoi2016]食物链
- 2016年阅读清单
- 自学看视频增强java基础
- Oracle如何&操作进行二进制的比对
- JQuery之DataTables强大的表格解决方案
- 割边
- Fine-Grained Recognition with Automatic and Efficient Part Attention
- golang的临时对象池sync.Pool
- BZOJ 1101 [POI2007] Zap
- linux下反弹shell的几种方法
- 目标
- Shiro学习--与SpringMVC整合(数据库,Shiro注解和Shiro标签)
- MySql常用命令
- 【GBK、UTF-8、ISO8859-1】三种编码方式总结