【POJ3352】Road Construction tarjan求边-双连通分量,裸题模板题
2015-01-13 08:39
417 查看
转载请注明出处:http://blog.csdn.net/vmurder/article/details/42671851
其实我就是觉得原创的访问量比未授权盗版多有点不爽233。。。
裸题只给模板。
tarjan可以实现。
太水不发题解。
代码:
其实我就是觉得原创的访问量比未授权盗版多有点不爽233。。。
裸题只给模板。
tarjan可以实现。
太水不发题解。
代码:
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define N 1010 #define M 2020 using namespace std; struct KSD { int v,next; }e[M]; int head ,cnt; inline void add(int u,int v) { e[++cnt].v=v; e[cnt].next=head[u]; head[u]=cnt; } int dfn ,low ,n,m; int id ,group,d ; int ans,edges; // 边-双个数、 桥个数 int stk ,top; void tarjan(int x,int p) // 边双连通分量,即无桥。 { int i,v,temp; dfn[x]=low[x]=++cnt; stk[++top]=x; for(i=head[x];i;i=e[i].next) { v=e[i].v; if(v==p)continue; if(!dfn[v]) { tarjan(v,x); low[x]=min(low[x],low[v]); } else low[x]=min(low[x],dfn[v]); // if(dfn[x]<low[v])edges++; // 桥的数目 } if(dfn[x]==low[x]) { group++; do{ temp=stk[top--]; id[temp]=group; }while(temp!=x); } return ; } int main() { // freopen("test.in","r",stdin); int i,j,k; int a,b,c; while(scanf("%d%d",&n,&m)!=EOF) { memset(head,0,sizeof(head)); memset(dfn,0,sizeof(dfn)); memset(d,0,sizeof(d)); cnt=group=ans=0; for(i=1;i<=m;i++) { scanf("%d%d",&a,&b); add(a,b),add(b,a); } cnt=0; for(i=1;i<=n;i++)if(!dfn[i])tarjan(i,0); for(j=1;j<=n;j++) for(i=head[j];i;i=e[i].next) if(id[j]!=id[e[i].v])d[id[e[i].v]]++; for(i=1;i<=n;i++)if(d[i]==1)ans++; printf("%d\n",ans+1>>1); } return 0; }
相关文章推荐
- Tarjan算法求解桥和边双连通分量(附POJ 3352 Road Construction解题报告
- POJ 3352 Road Construction (边双连通分量 Tarjan缩点)
- POJ-3352 Road Construction (边双连通分量[Tarjan])
- Tarjan算法求解桥和边双连通分量(附POJ 3352 Road Construction解题报告)
- POJ3352 Road Construction 双连通分量和桥 tarjan
- poj3352 Road Construction 边双连通分量tarjan算法
- POJ 3352 Road Construction(边双连通分量,桥,tarjan)
- POJ3352 Road Construction 双连通分量和桥 tarjan
- Road Construction 求双连通分量(tarjan)缩点,最后求度为1的点的个数cnt,则所需要增加的边(cnt+1)/2
- 边双联通问题求解(构造边双连通图)POJ3352(Road Construction)
- poj 3352 Road Construction 双连通分量+缩点 模板
- POJ 3352 Road Construction 构造双连通分量 && POJ 3177Redundant Paths注意重边
- poj 3352 Road Construction(点双连通分量缩点+缩点树变为双连通分量)
- POJ 3352 Road Construction (边双连通分量)
- POJ-3352 Road Construction,tarjan缩点求边双连通!
- POJ---3352-Road Construction(双连通分量)
- Road Construction POJ - 3352 (边双连通分量)题解
- 连通分量模板:tarjan: 求割点 && 桥 && 缩点 && 强连通分量 && 双连通分量 && LCA(最近公共祖先)
- POJ 3352 Road Construction POJ 3177 Redundant Paths(边双连通图 Tarjan+缩点)
- POJ-3352 Road Construction 双连通分量