poj1308Is It A Tree
来源:互联网 发布:淘宝免费使用怎么申请 编辑:程序博客网 时间:2024/05/20 21:46
根据输入数据判断能否构造成一棵树,模拟太烦,用并查集做
#include<iostream>#include<cstdio>using namespace std;int a,b,x,y,num=0,sum;int sets[50000];bool flag,nodes[50000],isnode[50000];int findset(int x){ int y; if(sets[x]==x) return x; else y=findset(sets[x]); sets[x]=y; return y;}int main(){ while(1){ num++; flag=true; for(int i=0;i<50000;i++){ sets[i]=i; nodes[i]=false; isnode[i]=false; } scanf("%d%d",&a,&b); if(a==-1&&b==-1) break; while(1){ if(a==0&&b==0) break; x=findset(a); y=findset(b); if(nodes[b]&&flag){ flag=false; printf("Case %d is not a tree.\n",num); } if(x==y&&flag){ flag=false; printf("Case %d is not a tree.\n",num); } else{ sets[x]=y; nodes[b]=true; isnode[a]=isnode[b]=true; } scanf("%d%d",&a,&b); } sum=0; for(int i=0;i<50000;i++) if(!nodes[i]&&isnode[i]) sum++; if(sum!=1&&sum!=0){ flag=false; printf("Case %d is not a tree.\n",num); } if(flag) printf("Case %d is a tree.\n",num); } return 0;}
- poj1308Is It A Tree
- poj1308Is It A Tree?
- poj1308Is It A Tree?(并查集)
- Is It A Tree?
- hdu1325Is It A Tree?
- Is it a tree?
- BIT1060Is It A Tree?
- Is It A Tree?
- Is It A Tree?
- Is It A Tree?
- Is It A Tree?
- hdu1325Is It A Tree?
- Is It A Tree?
- Is It A Tree?
- Is It A Tree?
- Is It A Tree?
- IS IT A tree
- hdoj1325Is It A Tree?
- 布局管理器
- Linux操作系统下如何启动停止Oracle实例
- 字典树(边改边抄)
- MyEclipse解决编码问题
- MyEclipse7.5安装aptana插件
- poj1308Is It A Tree
- QTP视频汇总
- 毕业之后的职场生活
- Linux Vi基本操作
- 执行模型之可变跑道(Elastic Racetrack)
- Fedora13操作系统不能用root账户登录的解决方法
- 交通等管理系统的学习
- 《那些年啊,那些事——一个程序员的奋斗史》——29
- C/C++ 中的移位操作总结