poj 1308 Is It A Tree?
// 题意: 给出一些边,由所给出的边能否构成一棵树.(节点数<100) // 思路: n个顶点的树具有3个特点:连通,不含环,恰好包含n-1条边.只要有任意两个,就能推导出第3个// 所以我们可以通过是否连通和不含环来判断可以构成树.// 不含环: 通过并查集,如果边a->b, a和b的祖先结点都一样,则是有环,包括a->a,和 a->b 重复出现,// 连通: 只有一个根结点 #include <iostream> //并查集using namespace std;#define maxn 1000int p[maxn],isNode[maxn];int find(int x){return p[x]==x ? x : p[x]=find(p[x]);}int main(){int t=1,a,b;while(cin>>a>>b&&a!=-1) // a->b {if(a==0) //只有 0 0 ,空树也是一棵树 { printf("Case %d is a tree.\n",t++);continue; }for(int i=1;i<maxn;++i) { p[i]=i; isNode[i]=0; }int isTree=1,tail=0;while(a!=0) {if(isTree) {int x=find(a),y=find(b);if(x==y) //说明存在环 { isTree=0; }else { p[y]=x; //a->b isNode[a]=isNode[b]=1; //标志结点 tail=max(tail,max(a,b)); //结点的下标并不是顺序增加 1 } } cin>>a>>b; }if(!isTree) printf("Case %d is not a tree.\n",t++);else {int roots=0;for(int i=1;i<=tail;i++) {if(isNode[i]&&p[i]==i) //找到一根结点 { roots++;if(roots>1)break; } }if(roots==1) printf("Case %d is a tree.\n",t++);else printf("Case %d is not a tree.\n",t++); //没有根结点,或者不只一个根结点 } }return 0;}
转载于:https://www.cnblogs.com/mjc467621163/archive/2011/07/20/2112182.html
poj 1308 Is It A Tree?相关推荐
- POJ 1308 Is It A Tree? (并查集)
Is It A Tree? 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/M Description A tree is a w ...
- HDU 1325POJ 1308 Is it A tree ? [并查集+树判定]
题目链接 poj hdu Is It A Tree? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/ ...
- 杭电 1272 poj 1308 小希的迷宫
这道题是我学了并查集过后做的第三个题,教我们的学姐说这是并查集的基础题,所以有必要牢牢掌握. 下面就我做这道题的经验,给大家一些建议吧!当然,我的建议不是最好的,还请各位大神指出我的错误来,我也好改正 ...
- 【POJ】1308 Is It A Tree?((并查集 + set)or (map))
http://poj.org/problem?id=1308 这个题数组开到200就可以了,但题目中貌似没有说呢? 读入每一对顶点,看看他们是否在同一个集合中,如果是的话,肯定成环,不是一棵树. 用s ...
- poj 2892 Tunnel Warfare (Splay Tree instead of Segment Tree)
poj.org/problem?id=2892 poj上的一道数据结构题,这题正解貌似是Segment Tree,不过我用了Splay Tree来写,而且我个人认为,这题用Splay Tree会更好写 ...
- kuangbin带你飞专题合集
题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...
- 算法学习经典例题整理
陆续会对本篇博客进行更新! 搜索:https://vjudge.net/contest/292597 区间DP:https://vjudge.net/contest/293892 树状背包:https ...
- kuangbin带你飞 专题1-23 题单
kuangbin大神,对于打过ACM比赛的ACMer,无人不知无人不晓. 在此,附上vjudge平台上一位大神整理的[kuangbin带你飞]专题目录链接. [kuangbin带你飞专题目录1-23] ...
- 老鱼的-kuangbin专题题解
kuangbin专题问题一览 专题一 简单搜索 POJ 1321 棋盘问题 POJ 2251 Dungeon Master POJ 3278 Catch That Cow POJ 3279 Flipt ...
最新文章
- 服务注册发现与kit实践
- linux系统文件分类,Linux系统文件概念和文件类型
- Python 网络爬虫笔记5 -- Beautiful Soup库实战
- SAP系统和微信集成的系列教程之三:微信用户关注公众号之后,自动在SAP C4C系统创建客户主数据
- 这个可能打败Python的编程语言,正在征服科学界
- Linux C DNS 查询IP地址
- linux命令---ln
- Educational Codeforces Round 41 (Rated for Div. 2)
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_04-vuejs研究-vuejs基础-v-model指令...
- 计算机应用基础考试excel操作题,自学考试_《计算机应用基础》_上机操作_模拟练习题...
- 这两款实用的win10录屏软件,你们千万别错过
- JCEF vs JxBrowser
- 全面剖析雅虎助手以及网络实名的流氓行径(5)
- java转码mp4的代码_JAVA视频格式转换 avi转mp4
- ccf试题1:小中大
- php干货网,php高手干货【必看】
- winedit注册码
- VS code 使用技巧-设置鼠标滚轮翻页速度(Mac版本)
- 【SpringBoot 】 十三、使用Redis
- 中石油大学22春季《大学英语(四)#》第一阶段在线作业
热门文章
- python 的csr_python的高级数组之稀疏矩阵
- slf4j注解log报错_SpringBoot自定义日志注解,用于数据库记录操作日志,你用过吗?...
- qgis 图片_QGIS入门教程公告!!!
- 网站开发用什么语言好_网站开发教程:企业如何用网站开启在线业务?
- php strpos无效,簡單的PHP strpos功能不起作用,為什么?
- mysql数据库表中的类型_MySQL数据库中表类型MyISAM与InnoDB的区别
- 【渝粤教育】国家开放大学2018年秋季 0690-21T化工原理及实验 参考试题
- 【渝粤教育】国家开放大学2018年春季 0269-22T文学概论 参考试题
- 【渝粤题库】陕西师范大学720001 分子生物学
- linux 嵌入式串口通信设计目的,基于linux的嵌入式串口通信.doc