hdu 1325 Is It A Tree?
2014-05-08 21:13
281 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1325
View Code
#include <cstdio> #include <cstring> #include <algorithm> #define maxn 5000 using namespace std; int in[maxn],f[maxn]; bool ha[maxn]; int max1; struct node { int u,v; }p[maxn*4]; void inti() { for(int i=1; i<=max1; i++) { f[i]=i; } } int find1(int x) { if(x==f[x]) return x; return f[x]=find1(f[x]); } void union1(int a,int b) { int fa=find1(a); int fb=find1(b); if(fa!=fb) { f[fb]=fa; } } int main() { int case1=1; while(scanf("%d%d",&p[0].u,&p[0].v)!=EOF) { if(p[0].u<0||p[0].v<0) break; if(p[0].u==0&&p[0].v==0) { printf("Case %d is a tree.\n",case1++); continue; } memset(in,0,sizeof(in)); memset(ha,false,sizeof(ha)); max1=0; max1=max(max1,p[0].u); max1=max(max1,p[0].v); ha[p[0].u]=ha[p[0].v]=true; in[p[0].v]++; int m=1; while(scanf("%d%d",&p[m].u,&p[m].v)) { if(p[m].u==0&&p[m].v==0) break; in[p[m].v]++; ha[p[m].u]=ha[p[m].v]=true; max1=max(max1,p[m].u); max1=max(max1,p[m].v); m++; } bool flag1=false; int m1=0; for(int i=1; i<=max1; i++) { if(ha[i]&&in[i]>1) { flag1=true; break; } } for(int i=1; i<=max1; i++) { if(ha[i]&&in[i]==0) m1++; } if(flag1||m1!=1) { printf("Case %d is not a tree.\n",case1++); continue; } inti(); for(int i=0; i<m; i++) { union1(p[i].u,p[i].v); } int ans=0; for(int i=1; i<=max1; i++) { if(ha[i]&&f[i]==i) ans++; } if(ans!=1) printf("Case %d is not a tree.\n",case1++); else printf("Case %d is a tree.\n",case1++); } return 0; }
View Code
相关文章推荐
- HDU 1325 Is It A Tree?(并查集或者树)
- hdu 1325 Is It A Tree?
- hdu_1325 Is It A Tree?
- hdu 1325 Is It A Tree?
- hdu 1325 is it a tree?
- HDU 1325 Is It A Tree?
- HDU 1325 Is It A Tree?(并查集/有向树的判断)
- 并查集-Is It A Tree?hdu 1325
- 【并查集】HDU 1325 Is It A Tree?
- HDU 1325 POJ 1308 Is It ATree?(并查集)
- hdu 1325(Is It A Tree?)
- HDU - 1325 Is It A Tree?
- Graph Theory NO.3 HDU_1325_Is It A Tree_并查集
- HDU-1325-Is It A Tree?
- POJ 1308 && HDU 1325 Is It A Tree?(并查集)
- 【并查集】hdu 1325 Is It A Tree? 或 poj 1308 Is It A Tree?
- HDU 1325 Is It A Tree?
- HDU 1325 Is It A Tree?(并查集简单题)
- 杭电 hdu 1272 小希的迷宫 和 hdu 1325 Is It A Tree?(最下生成树 + 并查集)
- HDU 1325 Is It A Tree? POJ 1308 Is It A Tree? (并查集+入度,判断一个有向图是树)