hdu 1325 Is It A Tree?
2014-03-22 19:50
363 查看
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int M = 1005; int vist[M], Set[M]; int du[M]; int a, b, maxn; int flag, cont, k; /* 形成树的条件是, 每一个节点的入度只能为1, 且根只能有一个。 */ int Find(int x) { return x == Set[x]? x : Set[x] = Find(Set[x]); } void Union(int x, int y) { x = Find(x); y = Find(y); if(x != y) { Set[y] = x; } } void init() { for(int i = 1; i < M; i++) { Set[i] = i; vist[i] = 0; du[i] = 0; } flag = 1; cont = 0; k = 0; maxn = 0; } int main() { int q = 1; init(); while(scanf("%d%d", &a, &b) != EOF) { if(a < 0 && b < 0) break; if(a == 0 && b == 0) { for(int i = 1; i < M; i++) { if(vist[i] && Set[i] == i) { cont++; } if(du[i] > 1) { flag = 0; break; } } if(cont >1) flag = 0; if(flag) printf("Case %d is a tree.\n", q++); else printf("Case %d is not a tree.\n", q++); flag = 0; init(); continue; } if(a != b && Find(a) == Find(b)) { flag = 0; } else { vist[a] = 1; vist[b] = 1; du[b]++; Union(a, b); } } return 0; }
相关文章推荐
- android适配器
- 九度OJ 1015
- jsp下Kindeditor环境搭建
- POJ 3126 Prime Path(素数,BFS最短路)
- [简要笔记]数学之美
- javaEE api .chm
- 位运算
- Hyper-V增强会话模式 推荐
- access "update语句的语法错误"解决
- 学习英语电台mms地址
- 对hibernate运行原理的总结
- jquery事件绑定详解
- MFC中ShellManager的使用
- IOS开发 textView输入文字时键盘切换为中文输入法后,第一个输入的字母变成英文
- Kerberos简介
- 编译安装httpd2.4
- qt中字符串转换
- ctags对部分目录生成tags
- 一个简单学生信息管理系统的编程
- 配置spring-mvc + simple-spring-memcached