题目描述

上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现在把她的设计图给你,让你帮忙判断她的设计图是否符合她的设计思路。比如下面的例子,前两个是符合条件的,但是最后一个却有两种方法从5到达8。 

输入

输入包含多组数据,每组数据是一个以0 0结尾的整数对列表,表示了一条通道连接的两个房间的编号。房间的编号至少为1,且不超过100000。每两组数据之间有一个空行。 
整个文件以两个-1结尾。

输出

对于输入的每一组数据,输出仅包括一行。如果该迷宫符合小希的思路,那么输出"Yes",否则输出"No"。

样例输入

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

样例输出

Yes
Yes
No
需要注意的是,他给出的点有可能构不成一个连同的树,而是两个或者更多的连通分支,这样也是不符合题意的。在判断是否有多条路可以到达的某一点,用并查集来判断,只需要找是否只有一个祖父节点就行。
#include<stdio.h>
#include<string.h>
#define N 0x3f3f3f
int pre[100100],vis[100100];
int find (int x)
{if(pre[x]==x)return x;else return pre[x]=find(pre[x]);
}
int Union (int x,int y)
{int tx=find(x);int ty=find(y);if(tx==ty)  return 0;pre[tx]=ty;return 1;
}
int main()
{int i,j,a,b;while(scanf("%d%d",&a,&b)&&(a!=-1&&b!=-1)){if(a==0&&b==0){printf("Yes\n");//  0 0是一定要判断的continue;}int max=-1,min=N;memset(vis,0,sizeof(vis));for(i=0; i<100100; i++)pre[i]=i;int f=0,count=0;while(a||b){if(a>max)  max=a;//找到所有点在的区间if(b>max)  max=b;if(a<min)  min=a;if(b<min)  min=b;vis[a]=1;       //记录已经有的点vis[b]=1;if(!Union(a,b))    //合并节点,找父节点。f=1;scanf("%d%d",&a,&b);}if(f==1)printf("No\n");else{for(i=min; i<=max; i++){if(vis[i]&&pre[i]==i)    //  这个点不仅要在区间中,父节点还得是自己。count++;}if(count==1)printf("Yes\n");elseprintf("No\n");}}return 0;
}

HDU 1272 小希的迷宫 (kruskal)相关推荐

  1. 【判断是不是树】HDU 1272 小希的迷宫

    HDU 1272 小希的迷宫 题意:输入多组无向边,结点的标号是随机的(可以不连续也可以不从1开始).然后让我们判断是不是刚好是一棵树. 需要注意的就是:0 0空树的情况. 代码:(带注释) #inc ...

  2. HDU 1272 小希的迷宫 (并查集)

    小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  3. hdu 1272 小希的迷宫 (并查集)

    小希的迷宫                                                                          Time Limit: 2000/1000 ...

  4. HDU——1272小希的迷宫(并查集+拓扑排序)

    小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  5. hdu 1272 小希的迷宫

    Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该 ...

  6. HDU - 1272小希的迷宫

    上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了 ...

  7. HDU 1272 - 小希的迷宫(并查集判树)

    目录 Problem Description C++代码 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来 ...

  8. HDU Problem 1272 小希的迷宫 【并查集】

    小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  9. hdu 1271 小希的迷宫(树的性质,并查集)

    小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

最新文章

  1. BZOJ3930: [CQOI2015]选数
  2. Kmeans聚类算法详解
  3. 温州大学瓯江学院 计算机院赛,温州大学
  4. P4922-[MtOI2018]崩坏3?非酋之战!【dp】
  5. 命令查看mysql端口映射_【转载】烂泥:如何利用telnet命令检测端口映射是否成功...
  6. 推荐一个 Java 接口快速开发框架,超级nice!
  7. 怎么在gitLab代码拉到本地
  8. whose view is not in the window hierarchy
  9. 文泉驿正黑 font JAVA,字体 | 免费可商用字体~文泉驿正黑体
  10. centos7安装abaqus2020
  11. dvr服务器系统,DVR监控软件 V1.0
  12. r730服务器安装系统蓝屏6,安装系统蓝屏解决解决方法
  13. 使用Echarts.js自定义X轴Y轴刻度画网格
  14. 在windows上配置本地域名解析,配置hosts文件
  15. 小米5破解安装centos系统
  16. Unity 手游面数控制
  17. vue PC端项目打包成windows桌面程序
  18. 点餐推荐系统_麦当劳智慧餐厅的微信小程序终究将取代人工点餐和自助点餐机...
  19. OpenCV基础(7)OpenCV中的颜色空间
  20. 对于电商尺码跟颜色组成的表格输入框,对输入框的操作

热门文章

  1. Xshell终端模拟器如何清除历史记录?
  2. idea 远程调试代码
  3. 带你彻底弄明白!2021年你与字节跳动只差这份笔记手慢无
  4. 印刷报价系统源码_皇家印刷术-设计系统案例研究
  5. 如何验证姓名和ID是否匹配?
  6. 模拟对讲机会被数字对讲机取代吗?
  7. MySQL cookie注入
  8. python中的逻辑判断
  9. 1027: 字符类型判断(C语言)
  10. 路由器断网如何配置上网