小希的迷宫

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 34594    Accepted Submission(s): 10591

Problem Description
上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现在把她的设计图给你,让你帮忙判断她的设计图是否符合她的设计思路。比如下面的例子,前两个是符合条件的,但是最后一个却有两种方法从5到达8。
Input
输入包含多组数据,每组数据是一个以0 0结尾的整数对列表,表示了一条通道连接的两个房间的编号。房间的编号至少为1,且不超过100000。每两组数据之间有一个空行。
整个文件以两个-1结尾。
Output
对于输入的每一组数据,输出仅包括一行。如果该迷宫符合小希的思路,那么输出"Yes",否则输出"No"。
Sample Input
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

思路:就是判断并查集成环问题,两种情况会输出NO,1、不连通,最后有多棵树。2、连通,但是构成了一个环。

我的代码:

#include<stdio.h>
#include<string.h>
int per[100010],vic[100010];
int flag;
int a,b;
void init(){for(int i=1;i<100010;i++)per[i]=i;
}
int find(int x){int r=x;while(r!=per[r])r=per[r];int i=x,j;while(i!=r){j=per[i];per[i]=r;i=j;}return r;
}
void join(int a,int b){int fa=find(a);int fb=find(b);if(fa!=fb)per[fa]=fb;elseflag=0;
}
int main(){while(scanf("%d%d",&a,&b)!=EOF){if(a==-1&&b==-1)break;if(a==0&&b==0){printf("Yes\n");continue;}init();memset(vic,0,sizeof(vic));join(a,b);vic[a]=1;vic[b]=1;flag=1;while(scanf("%d%d",&a,&b)&&a!=0&&b!=0){join(a,b);vic[a]=1;vic[b]=1;}int i,ans=0;for( i=1;i<=100010;i++){if(i==per[i]&&vic[i]==1)ans++;if(ans>1){flag=0;}}if(flag)printf("Yes\n");elseprintf("No\n");}return 0;
}

HDOJ-1272 小希的迷宫相关推荐

  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 Problem 1272 小希的迷宫 【并查集】

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

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

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

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

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

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

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

  7. hdu 1272 小希的迷宫

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

  8. HDU - 1272小希的迷宫

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

  9. HDU 1272 小希的迷宫 (kruskal)

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

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

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

最新文章

  1. 项目经理应该知道的97件事 --译者序
  2. Git - Tutorial官方【转】
  3. 年度总结和计划:去年4个1,今年5个1
  4. 内容流推荐中的个性化标题生成框架
  5. 7-2 页面置换算法--LRU (50 分)
  6. 复合索引字段的排序对搜素的影响
  7. 转:用ASP.NET创建网络相册
  8. 【Tensorflow】slim.arg_scope()的使用
  9. 起始之家网站的辅助教程值不值得买
  10. mysql进阶教程pdf_SQL进阶教程 (MICK著) 高清pdf完整版
  11. 《Head First Java》| 1 进入Java 的世界
  12. 用java做出长方体的表面积_计算长方体、四棱锥的表面积和体积(Java)acm.sdut...
  13. Ubuntu 实时网速查看命令
  14. 腾讯云TVP专家眼中的云开发:尚不完美,未来可期
  15. 行业上的品牌策划公司是怎么做品牌策划方案的?
  16. 模拟电路--同相放大器和反相放大器的选择
  17. Google登录接入
  18. 计算机乘法算法流程,布斯乘法算法
  19. 电脑C盘爆满 不花钱教你1分钟瘦身的终极神技
  20. Win10应用商店OneNote安装错误0x800706D9

热门文章

  1. 用UCenter Home启动一个垂直的SNS社区
  2. operator 模块详解
  3. TensorFlow:交叉熵损失函数
  4. Sublime功能拓展及插件
  5. Spark核心类:SQLContext和DataFrame
  6. 机器学习之特征选择(feature_selection)
  7. ubuntu16.04 安装virtualbox 问题 RTR3InitEx failed with rc=-1912 (rc=-1912)
  8. Django常用命令
  9. 计算机等级一考通2021,2021驾校一考通题库
  10. 怎么设置qq信息同步服务器,王者荣耀QQ消息同步功能是什么 王者荣耀QQ消息同步功能介绍...