UVA796-Critical Links
来源:互联网 发布:校园网网络拓扑图设计 编辑:程序博客网 时间:2024/05/17 20:34
题意:给出n个点,m条无向边,按顺序输出桥
#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <algorithm>#include <cmath>#include <vector>#include <map>#include <set>#include <queue>#include <stack>#include <functional>#include <climits>using namespace std;#define LL long longconst int INF=0x3f3f3f3f;const int N=1e4+10;struct Edge{ int v,flag,next;}edge[N*20];struct bridge{ int u,v;}ans[N];int s[N],tot,cnt;int n,m;int dfn[N],low[N],dep;bool vis[N];bool cmp(bridge a,bridge b){ if(a.u!=b.u) return a.u<b.u; else return a.v<b.v;}void AddEdge(int u,int v){ for(int i=s[u]; ~i; i=edge[i].next) { if(edge[i].v==v) { edge[i].flag++; return ; } } edge[tot].v=v; edge[tot].next=s[u]; edge[tot].flag=0; s[u]=tot++;}void tarjan(int u,int pre){ vis[u]=true; dfn[u]=low[u]=++dep; for(int i=s[u]; ~i; i=edge[i].next) { int v=edge[i].v; if(v==pre) continue; if(!vis[v]) { tarjan(v,u); low[u]=min(low[u],low[v]); } else low[u]=min(low[u],dfn[v]); if((low[v]>dfn[u])&&!edge[i].flag) { ans[cnt].u=u; ans[cnt].v=v; if(u>v) swap(ans[cnt].u,ans[cnt].v); cnt++; } }}int main(){ while(~scanf("%d",&n)) { memset(s,-1,sizeof s); tot=cnt=0; for(int i=1; i<=n; i++) { int u,v,k; scanf("%d (%d)",&u,&k); u++; for(int j=1; j<=k; j++) { scanf("%d",&v); v++; AddEdge(u,v); } } memset(vis,0,sizeof(vis)); dep=0; for (int i=1;i<=n;i++) if(!vis[i]) tarjan(i,i); sort(ans,ans+cnt,cmp); printf("%d critical links\n",cnt); for(int i=0; i<cnt; i++) printf("%d - %d\n",ans[i].u-1,ans[i].v-1); printf("\n"); } return 0;}
0 0
- UVA796-Critical Links
- UVA796 Critical Links (tanjar求桥)
- UVA796- Critical Links(无向图的桥)
- UVA796.Critical Links——无向图的桥
- uva796 Critical Links(求桥并按边输出)
- UVA 796 Critical Links
- UVA 796 Critical Links
- LightOJ1026-Critical Links-tarjan
- UVA796
- LightOJ 1026 Critical Links[求割边]
- LightOJ - 1026 Critical Links(桥)
- LightOJ 1026 - Critical Links (tarjan 找桥)
- Light OJ 1026 Critical Links 求桥
- UVA 796 - Critical Links【求桥】
- UVa 796 Critical Links(无向图求割边)
- Critical Links(连通图 桥)
- UVA 796 Critical Links (桥)
- UVA 796 Critical Links 求桥 .
- OpenCV2.4.9+VS2013配置
- hdu 1995 汉诺塔V(递推)
- 用ECLIPSE跑HADOOP程序的注意事项
- 希尔排序实现
- 【Unity3D_UGUI速成班】——04. Canvas
- UVA796-Critical Links
- Android开发——适配终结者AutoLayout
- 北京崇文可结合方式打开附件和
- 超新星系列|中国足协“2024奥运希望之星”:恒大足校王世龙
- 北京朝阳可结合方式打开附件和
- 十分钟入门Matplotlib
- 一步一步学MySQL----14 夺标数据记录查询之外连接
- 【 日常 】 AVL平衡树 17年3月31日22:41 [ 2 ]
- 多线程两种方式的对比