UVA315-Network(求割点个数,模板题)||tarjan
来源:互联网 发布:java 字符串排列组合 编辑:程序博客网 时间:2024/06/03 21:13
这个就是很裸的求割点的个数
关于割点什么的可以参考:http://blog.csdn.net/idrandom/article/details/52173817
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int Max=10050;struct node{ int v,nxt; int bri;//是否是桥}e1[Max];int h[Max];int dfn[Max],low[Max],mst[Max],vis[Max];int cut[Max],ad[Max];int siz,idx,st,ct,br;void init(){ memset(e1,-1,sizeof e1); memset(h,-1,sizeof h); memset(vis,0,sizeof vis); memset(ad,0,sizeof ad); memset(cut,0,sizeof cut); siz=idx=st=ct=br=0;}void add(int u,int v){ e1[siz].nxt=h[u]; e1[siz].v=v; e1[siz].bri=0; h[u]=siz++;}void tarjan(int u,int fa){ int v; low[u]=dfn[u]=++idx; mst[++st]=u; vis[u]++; int son=0; for(int i=h[u];~i;i=e1[i].nxt){ v=e1[i].v; if(v==fa)continue; if(!vis[v]){ son++; tarjan(v,u); if(low[u]>low[v])low[u]=low[v]; //桥 if(low[v]>dfn[u]){ ++br; e1[i].bri=1; e1[i^1].bri=1; } //割点 if(fa&&low[v]>=dfn[u]){//不是根 cut[u]=1; ad[u]++; } } else if(dfn[v]<low[u])low[u]=dfn[v]; } if((!fa)&&son>1)cut[u]=1; if(!fa)ad[u]=son-1; vis[u]++; st--;}char str[505];int main(){ int n; while(~scanf("%d",&n)&&n){ init(); getchar(); while(gets(str)){ if(str[0]=='0')break; int len=strlen(str); int u=0,v=0; for(int i=0;i<len;i++){ if(!u){ while(i<len&&str[i]!=' '){u*=10;u+=(str[i++]-'0');} i++; } while(i<len&&str[i]!=' '){v*=10;v+=(str[i]-'0');i++;} add(u,v); add(v,u); v=0; } } for(int i=1;i<=n;i++){ if(!vis[i])tarjan(i,0); } int ans=0; for(int i=1;i<=n;i++){ if(cut[i])ans++; } printf("%d\n",ans); } return 0;}
刚开始输入写挂了居然出了样例。。。蜜汁wa
0 0
- UVA315-Network(求割点个数,模板题)||tarjan
- UVA315 Network(tarjan求割点)
- uva315 Network 【tarjan-求割点】
- uva315(求割点模板题)
- UVA315---Network(连通性问题:求割点)
- uva315/poj1144 network 求割点
- uva315 Network 【图论-tarjan-求桥】
- Network(特殊的输入格式+tarjan求割点模板题)
- POJ 1144 Network Tarjan 求无向图的割点的个数 Tarjan 模板题
- UVa315 - Network
- UVA315-Network
- UVA315 Network
- POJ1144--Network(Tarjan求割点)
- [POJ1144]Network(tarjan求割点)
- poj 1144 Network(模板题)(Tarjan 关节点的朴素算法)
- POJ 1236 Network of Schools【tarjan算法】【模板题】
- UVA315- Network(无向图割点)
- POJ 1144 Network 求割点(tarjan)
- Semaphore
- HTML5--link、selector、!important
- 小丸子总结node.js的一些问题
- 【zzuliOJ】1907 - 小火山的宝藏收益(dfs)
- React学习笔记一
- UVA315-Network(求割点个数,模板题)||tarjan
- 暑期dp46道(24)HDOJ 1074 Doing Homework 状压dp
- va_list(),va_start() ,va_end()
- Spring之SimpleJdbcTemplate的使用
- hdu 1024 Max Sum Plus Plus(m段最大子列和)
- 安装配置Hadoop
- 玛丽卡(spfa删边求最短路)
- 对称算法(计算机图形学)
- Linux grep命令详解