hdu 1325 Is It A Tree?
2012-07-19 19:34
417 查看
题目链接
#include"stdio.h" int set[1001],v[1001],cnt[10001],flag; //初始化 void fun() { int i; flag=1; for(i=1;i<=1000;i++) { set[i]=i; v[i]=0; cnt[i]=0; } } //查找根节点 int find(int x) { return x==set[x]?x:find(set[x]); } int judge() { int i,t; for(i=1;i<=1000;i++) { if(v[i]) cnt[find(i)]++;//如果只有一棵树的话,只能有一个根节点。 } t=0; for(i=1;i<=1000;i++) if(cnt[i]>1) t++;//t计算根节点数目 if(t!=1) return -1; else return 1; } int main() { int a,b,i,count; count=0; fun(); while(scanf("%d%d",&a,&b)!=EOF) { if(a<0) break; if(a==0&&b==0) { count++; if(flag==0) printf("Case %d is not a tree.\n",count); else { if(judge()==1) printf("Case %d is a tree.\n",count); else printf("Case %d is not a tree.\n",count); } fun(); } v[a]=v[b]=1; if(find(a)==find(b)||find(set[b])!=b)//判断是否有环以及一个节点是否有多个根节点。 flag=0; else set[b]=a;//合并 } return 0; }
相关文章推荐
- hdu 1325 Is It A Tree? (并查集)
- hdu 1325 Is It A Tree?(并查集)
- POJ 1308 && HDU 1325 Is It A Tree? (并查集)
- HDU 1272小希的迷宫 1325Is It A Tree? 并查集确定图为树
- hdu-1325 Is It A Tree?
- hdu 1325/poj 1308 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?
- hdu1325 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?(并查集)
- poj - 1308 - Is It A Tree?(Uva - 615, hdu - 1325)
- hdu 1325 is it a tree?
- hdu 1325 Is It A Tree?