hdu 1325 Is It A Tree? (并查集)
2017-07-21 13:09
519 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1325
题意:可以先参考hdu1272 http://blog.csdn.net/qq_36782366/article/details/75044271
由无向边变为了有向边 判断是否是一颗树
思路:加一个数组 记录入度即可 有一个结点的入度如果大于1 则不成立
题意:可以先参考hdu1272 http://blog.csdn.net/qq_36782366/article/details/75044271
由无向边变为了有向边 判断是否是一颗树
思路:加一个数组 记录入度即可 有一个结点的入度如果大于1 则不成立
#include<iostream> #include<cstdio> #include<set> #include<algorithm> #include<queue> #include<cstring> using namespace std; #define maxn 100010 int pre[maxn]; int vis[maxn]; int du[maxn]; int num1,num2; int find(int x) { int r=x; while(r!=pre[r]) r=pre[r]; int i=x,j; while(r!=i) { j=pre[i]; pre[i]=r; i=j; } return r; } void join(int x,int y) { int fx=find(x); int fy=find(y); if(fx!=fy) { pre[fy]=fx; } } int main() { int n,m; int cas=1; while(~scanf("%d%d",&n,&m)) { int num1=0,num2=0; for(int i=0;i<maxn;i++) pre[i]=i; if(n==-1&&m==-1)break; if(n==0&&m==0) { printf("Case %d is a tree.\n",cas++); continue; } join(n,m); int flag=0; memset(vis,false,sizeof vis); memset(du,0,sizeof du); if(!vis ) { vis =true; num1++; } if(!vis[m]) { vis[m]=true; num1++; } if(!du[m])du[m]=1; else flag=1; num2++; while(~scanf("%d%d",&n,&m)) { if(n==0&&m==0)break; if(flag)continue; if(!vis ) { vis =true; num1++; } if(!vis[m]) { vis[m]=true; num1++; } num2++; if(!du[m])du[m]=1; else flag=1; int fm=find(m); int fn=find(n); if(fm!=fn) pre[fm]=fn; else flag=1; } if(flag||abs(num1-num2)!=1)printf("Case %d is not a tree.\n",cas++); else printf("Case %d is a tree.\n",cas++); } return 0; }
相关文章推荐
- 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 并查集+树的性质
- hdu 1325 Is It A Tree?(并查集)
- 【HDU】-1325-Is It A Tree?(并查集)
- HDU 1325 Is It A Tree?(并查集)
- TOJ 1856 POJ 1308 HDU 1325 Is It A Tree? / 并查集
- HDU 1325 Is It A Tree? POJ 1308 Is It A Tree? (并查集+入度,判断一个有向图是树)
- 杭电 hdu 1272 小希的迷宫 和 hdu 1325 Is It A Tree?(最下生成树 + 并查集)
- hdu1325 Is It A Tree?并查集
- hdu 1325 Is It A Tree? (并查集)
- POJ 1308 && HDU 1325 Is It A Tree?(并查集)
- POJ 1308 && HDU 1325 Is It A Tree? (并查集)
- 【并查集】HDU 1325 Is It A Tree?
- hdu 1325 Is It A Tree? 并查集
- HDU 1325 POJ 1308 Is It A Tree? (并查集)
- hdu---(1325)Is It A Tree?(并查集)