poj - 1308 Is It A Tree?
2012-11-08 22:47
417 查看
水题,判断是否是一棵树,如果一个结点有多个父亲or图中有环就不是。
#include <stdio.h> #include <string.h> int fa[1005],v[1005]; int Find(int n) { if(fa == -1) return n; fa = Find(fa ); return fa ; } int main() { int ca=1,a,b,i,j,f; bool ok; while(scanf("%d%d",&a,&b)) { if(a==-1 && b==-1) break; if(!a && !b) { printf("Case %d is a tree.\n",ca++); continue; } ok = 1; i = 0; memset(fa,-1,sizeof fa); fa[b] = a; v[i] = b; if(a == b) { ok = 0; printf("Case %d is not a tree.\n",ca++); } while(scanf("%d%d",&a,&v[++i]),a&&v[i]) if(ok) { if(fa[v[i]] != -1 || Find(a)==v[i]) { ok = 0; printf("Case %d is not a tree.\n",ca++); } fa[v[i]] = a; } if(ok) { f = Find(v[0]); for(j = 1; j <= i&&Find(v[j]) == f; j++); if(j < i) printf("Case %d is not a tree.\n",ca++); else printf("Case %d is a tree.\n",ca++); } } return 0; }
相关文章推荐
- Is It A Tree?(POJ_1308)
- POJ1308 Is It A Tree?
- poj 1308 Is it a Tree?
- POJ 1308 Is it a tree??
- poj 1308 Is It A Tree?(并查集)
- POJ 1308-Is It A Tree?(并查集)
- poj 1308 Is It A Tree?
- POJ 1308 Is It A Tree?
- POJ1308(Is It A Tree?)
- POJ 1308 && HDU 1325 Is It A Tree?(并查集)
- POJ-1308 Is It A Tree?
- poj - 1308 - Is It A Tree?(Uva - 615, hdu - 1325)
- poj 1308 Is It A Tree?
- POJ 1308 Is it a tree
- POJ 1308 && HDU 1325 Is It A Tree? (并查集)
- poj 1308 Is It A Tree?
- POJ——1308Is It A Tree?(模拟拓扑排序判断有向图是否为树)
- poj 1308 Is It A Tree? (并查集)
- N - Is It A Tree? POJ - 1308
- POJ 1308 Is It A Tree? (两种解法)