小希的迷宫(请永远相信c语言的强大)
Input
-
输入包含多组数据,每组数据是一个以0 0结尾的整数对列表,表示了一条通道连接的两个房间的编号。房间的编号至少为1,且不超过100000。每两组数据之间有一个空行。
整个文件以两个-1结尾。 - Output
- 对于输入的每一组数据,输出仅包括一行。如果该迷宫符合小希的思路,那么输出"Yes",否则输出"No"。
- Sample Input
-
6 8 5 3 5 2 6 4 5 6 0 08 1 7 3 6 2 8 9 7 5 7 4 7 8 7 6 0 03 8 6 8 6 4 5 3 5 6 5 2 0 0-1 -1
- Sample Output
-
Yes Yes No
//flag[i]数组标记i是否出现,FLAG标记是否有环,sum记录集合的个数
#include<stdio.h>
const int N = 100005;
int flag[N], father[N];
void Init()
{for(int i = 0; i <= 100000; i++)flag[i] = 0, father[i] = i;
}
int Find(int x)
{if(x != father[x])father[x] = Find(father[x]);return father[x];
}
void Merge(int a, int b)
{int p = Find(a);int q = Find(b);father[p] = q;
}
int main()
{int a, b;while(~scanf("%d%d",&a,&b)){if(a == -1 && b == -1)break;Init();int FLAG = 0;while(1){if(a == 0 && b == 0)break;if(Find(a) == Find(b))//如果a和b已经处于连通状态,那么现在再次输入的a和b相直接连通就等价于a和b有了多条连接通路,这时就可以直接判断了FLAG = 1;Merge(a,b);flag[a] = 1, flag[b] = 1;scanf("%d%d",&a,&b);}if(FLAG == 1)printf("No\n");else{int sum = 0;for(int i = 0; i <= 100000; i++)if(flag[i] && father[i] == i)sum++;if(sum > 1)//小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。根据题意,只能有且只有一个集合。printf("No\n");elseprintf("Yes\n");}}return 0;
}
小希的迷宫(请永远相信c语言的强大)相关推荐
- 杭电 1272 poj 1308 小希的迷宫
这道题是我学了并查集过后做的第三个题,教我们的学姐说这是并查集的基础题,所以有必要牢牢掌握. 下面就我做这道题的经验,给大家一些建议吧!当然,我的建议不是最好的,还请各位大神指出我的错误来,我也好改正 ...
- HDU1272 小希的迷宫【并查集】
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 小希的迷宫(并查集)
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- HDU Problem 1272 小希的迷宫 【并查集】
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 并查集杭电1272小希的迷宫
New~ 欢迎参加--计算机学院大学生程序设计竞赛(新生为主) 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/ ...
- hdu 1272 小希的迷宫 (并查集)
小希的迷宫 Time Limit: 2000/1000 ...
- HDOJ---1272 小希的迷宫[并查集]
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 学校(School)主要有3大角色:学校(School),讲师(Teacher),学员(Student)。请用Python语言简要实现这些类及及其属性,以及它们之间的关系。
学校(School)主要有3大角色:学校(School),讲师(Teacher),学员(Student). 学校可以注册学员,统计有多少学员 讲师负责讲课 学生听课,提问,学习,交学费 Teacher ...
- 内存(Display)、显示器(Monitor)和计算机(Computer)均属于一种产品(Product),其中计算机需要显示器和内存。请用Python语言简要实现这些类及它们之间的关系。
内存(Display).显示器(Monitor)和计算机(Computer)均属于一种产品(Product),其中计算机需要显示器和内存.请用Python语言简要实现这些类及它们之间的关系. clas ...
最新文章
- 中国电子信息工程科技发展十四大趋势(2021)
- aws python lambda_AWS Lambda
- python白名单验证是什么意思_第10.5节 使用__all__定义Python模块导入白名单
- ASP.NET Core自定义响应内容
- 机器学习 导论_机器学习导论
- SQLServer 批量插入数据的两种方法
- 安装选择Arduino Leonardo新手入门体验
- C4D OCtane渲染器大师之路笔记(四):使用OC灯光
- 机械硬盘与互联网文明
- MATLAB识别实验,基于MATLAB的人脸识别系统实验报告.pdf
- 年薪和月薪有什么区别
- ubuntu下使用github安装R Packages[已解决]
- 【字体在哪个文件夹】Win7怎么安装字体
- GPS卫星同步时钟,GPS卫星时钟,GPS时钟
- ARM Translation 下载 | ARM Translation Download
- 新浪微博是如何支撑百万 QPS 的?
- 虚拟主机++iRedMail搭建邮箱服务器
- tableau无法建立连接_的Tableau错误连接到本地MySQL数据库
- 利用pstools和任务计划定期批量清理IIS日志
- 使用VM15创建虚拟机并安装CentOS 7 连接不到网络解决方法(设置静态ip)