HDU 1272(并查集)
2016-08-12 15:17
267 查看
#include<stdio.h> #include<stdlib.h> #include<algorithm> #include<math.h> #include<string.h> #include<queue> #include<vector> #include<map> using namespace std; #define rep(i,n) for(int (i)=1;(i)<=(int)(n);++(i)) const int MAXN=100005; int from[MAXN],to[MAXN]; int father[MAXN]; int Find(int x) { if(x==father[x]) return x; return father[x]=Find(father[x]); } int main() { //freopen("test.txt","r",stdin); int a,b; int n=0,m=0,cnt=0,ans=0; while(scanf("%d%d",&a,&b)&&(a!=-1&&b!=-1)) { father[a]=a,father[b]=b; if(a&&b) { from[++m]=a;to[m]=b; continue; } rep(i,MAXN) if(father[i]==i)n++; rep(i,m) { int ff=Find(from[i]),ft=Find(to[i]); if(ff==ft) {ans=1;break;} <span style="white-space:pre"> </span> else { father[ff]=ft; cnt++; } } if(!ans&&(cnt==n-1||n==0)) printf("Yes\n"); else printf("No\n"); memset(father,0,sizeof(father)); n=0,m=0,cnt=0,ans=0; } return 0; }
相关文章推荐
- HDU 1272 小希的迷宫 并查集
- hdu 1272 小希的迷宫(并查集)
- hdu1272 - 小希的迷宫(并查集判环)
- HDU 1272 小希的迷宫 并查集 (判断任意2个点是否有且仅有一条路径可以相通)
- HDU1272 小希的迷宫 并查集
- HDU1272 小希的迷宫(并查集+数据坑)
- HDU 1272 小希的迷宫(并查集,环的判断,连通域的判断)
- C语言:小希的迷宫 HDU - 1272 (并查集——检验是否有回路)
- hdu 1272 并查集简单题目
- ***HDU-1272 小希的迷宫 ACM解题报告(并查集难题)
- HDU1272(并查集)
- hdu1272小希的迷宫 (并查集应用)
- HDU 1272 小希的迷宫(并查集)
- HDU - 1272 小希的迷宫(并查集判断无向环)
- POJ 1308&&HDU 1272 并查集判断图
- 小希的迷宫 HDU - 1272 (并查集)
- HDU 1272 小希的迷宫 (并查集)
- 并查集总结【模板】 例题:①简单POJ - 1611 The Suspects ②一般HDU - 1272 小希的迷宫
- hdu 1272(小希的迷宫)(并查集)
- hdu1272 小希的迷宫 并查集