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

Input
输入包含多组数据,每组数据是一个以0 0结尾的整数对列表,表示了一条通道连接的两个房间的编号。房间的编号至少为1,且不超过100000。每两组数据之间有一个空行。
整个文件以两个-1结尾。
Output
对于输入的每一组数据,输出仅包括一行。如果该迷宫符合小希的思路,那么输出"Yes",否则输出"No"。
Sample Input
6 8 5 3 5 2 6 4
5 6 0 0

8 1 7 3 6 2 8 9 7 5
7 4 7 8 7 6 0 0

3 8 6 8 6 4
5 3 5 6 5 2 0 0

-1 -1
Sample Output
Yes
Yes
No
题意:给出几组测试数据(以-1 -1结束),每组测试数据有几组数a,b(以0 0结束)表示从a,b相连,从a可以到b,从b也能到a,并且从a到b只要一条路径,意思也是问能不能形成一棵树.
思路:这个题读过题后明白可以用并查集做, 只能有一个祖先,并且从一个点到另一个点只能有一条唯一路径,在实现的时候对输入的a,b,在a,b祖先不同时进行一个合并,使他们有相同祖先,然后接着输入,在每一次输入之后都要进行一个if (getf(a)==getf(b))的判断,如果相等说明之前从a到b已经有一条路径了,这个已经是第二条了,所以不能满足条件,在满足第三个条件的情况下最后判断一下有多少个祖先,如果多于一个不满足条件。

#include<stdio.h>
#include<string.h>
#define N 100005
int p[N]={0};
int find(int x)
{//return x==p[x]?x:p[x]=find(p[x]);while(x!=p[x])x=p[x];return x;
}
int fun(int x,int y)
{int fy,fx;fy=find(y);fx=find(x);if(fy!=fx){p[fy]=fx;}
}
int main()
{int k,i,a,b,flag;int sum;k=1;while(1){flag=0;while(scanf("%d %d",&a,&b)!=EOF&&a&&b){if(a==-1||b==-1)return 0;if(p[a]==0) p[a]=a;if(p[b]==0) p[b]=b;if(find(a)==find(b)) flag=1;if(flag!=1)fun(a,b);}for(i=1,sum=0;i<=N;i++){if(p[i]==i) sum++;p[i]=0;}if(sum>1||flag==1)printf("No\n");else printf("Yes\n");}return 0;
}

小希的迷宫——HDU1272相关推荐

  1. 小希的迷宫-HDU-1272(并查集or树性质)

    题目链接:小希的迷宫 并查集: 无回路 单连通 并查集做,首先想到的是判断两个点是否连通,不连通就合并,已连通的话说明会形成回路,则可以判定No,交了一发错了. 想了一下没有考虑到多个连通域的情况,该 ...

  2. HDU1272 小希的迷宫【并查集】

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

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

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

  4. 杭电 1272 poj 1308 小希的迷宫

    这道题是我学了并查集过后做的第三个题,教我们的学姐说这是并查集的基础题,所以有必要牢牢掌握. 下面就我做这道题的经验,给大家一些建议吧!当然,我的建议不是最好的,还请各位大神指出我的错误来,我也好改正 ...

  5. 小希的迷宫(并查集)

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

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

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

  7. 并查集杭电1272小希的迷宫

    New~ 欢迎参加--计算机学院大学生程序设计竞赛(新生为主) 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/ ...

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

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

  9. HDOJ---1272 小希的迷宫[并查集]

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

最新文章

  1. 绿盟科技网络安全威胁周报2017.17 请关注Squirrelmail 远程代码执行漏洞CVE-2017-7692...
  2. 快速搭建 Serverless 人脸识别离线服务
  3. Ant和Junit使用的一些问题
  4. knn的python代码_KNN-python代码实现
  5. 视屏接口系列(一 ) ----------VGA(对与数信号显示器要加载A/D,延时拖尾、质量下降)...
  6. 洛谷 - P4755 Beautiful Pair(笛卡尔树+主席树)
  7. delphi7下安装TMS component
  8. 走向.NET架构设计—第五章—业务层模式,原则,实践(中篇)
  9. 面向对象中构造函数的小练习
  10. Hook的两个小插曲
  11. 几种常用的清除浮动方法(一)
  12. android7.0提示定位,解决android7.0上某些PopuWindow显示位置不正确的问题
  13. Unreal角色技术指南
  14. 1111---9999的变换
  15. 2018-2019-2 20165234 《网络对抗技术》 Exp1 PC平台逆向破解
  16. android 点阵字库
  17. 用正则去掉代码前面附带的数字序号
  18. 未来十年最容易消失和最不易被取代的22个职业,越看越心惊!附相关专业
  19. 摄影测量实习-解析空中三角测量-C#代码
  20. qq申诉网站无法接到服务器,为什么我qq申诉不成功 - 卡饭网

热门文章

  1. “我,今年32岁,存款为0“:三十不立,才是真实的人生
  2. A,B,C , D, E类地址的划分及子网划分汇总的详解
  3. Chrome for win7x64
  4. 使用node.js快速搭建服务器(vscode版)
  5. linux 配置开机自启动命令
  6. 为您解惑:jQuery中$.getJSON( )的使用方法简介之获取JSON格式的数据.........
  7. [JavaScript][AJAX]onreadystatechange事件;AJAX含义及组成部分;AJAX工作原理/HTTP工作原理;一个页面从输入url到呈现网页过程;FormData对象;防抖
  8. fake_useragent Maximum amount of retries reached报错解决办法
  9. Elasticsearch概述
  10. exports 和 module.exports 的区别