1今天准备复习三道以前做过的题呢,结果只看了一道,也因为交题的时候没把测试时候为了方便而改的数字改过来而wrong answer,浪费了好长时间,啊啊啊~~

不过这道题应该是掌握了,嘿嘿……

Description

上次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
 
 
 
开两个数组,arr[100010],和mark[100010];一个标志位flag;flag = 1代表满足,flag = 0代表不满足;
其中arr[i] 记录i节点的父节点,比如arr[i] = j;代表i节点的父节点为j;
mark[i]标记i节点有没有被设为迷宫的一部分
有两种情况的迷宫不符合要求:
1 :迷宫不联通,即树的数目多于1;
2 :从一个节点到另一个节点有多条路,(这个可以每输入一组数可以找它们的树根,如果不在一棵树上,把他们连接在一棵树上,如果在一棵树上,说明这条路本来就是连通的,那这种情况就不符合要求了,flag = 0)
ps:注意输入为0,0的情况也是符合要求的迷宫,以为没有证据证明他们不符合要求,反正我也是醉了……
#include <cstdio>
#include <algorithm>
using namespace std;
int arr[], mark[], flag;
int findx(int x)
{
int r = x;
while(arr[r] != r)
r = arr[r];
return r;
}
void fix(int a, int b)
{
int fx = findx(a);
int fy = findx(b);
if(fx != fy)
arr[fx] = fy;
else
flag = ;
}
int main()
{
int a, b, cnt;
while(scanf("%d%d", &a, &b) && (a != - && b != -))
{
flag = , cnt = ;
if(a == && b == )
{
printf("Yes\n");
continue;
}
for(int i = ; i < ; i++)
{
arr[i] = i;
mark[i] = ;
} //int mi = 100010, ma = -1;
while(a || b)
{
/* if(ma < max(a, b))
ma = max(a, b);
if(mi > min(a, b));
mi = min(a, b);*/
fix(a, b);
mark[a] = mark[b] = ;
scanf("%d%d", &a, &b);
}
for(int i = ; i <= ; i++)
{
if(arr[i] == i && mark[i])
cnt++;
if(cnt > )
{
flag = ;
break;
}
}
if(flag == )
printf("Yes\n");
else
printf("No\n"); }
return ;
}

G - 小希的迷宫(并查集)的更多相关文章

  1. hdu-1272 小希的迷宫---并查集或者DFS

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1272 题目大意: Problem Description 上次Gardon的迷宫城堡小希玩了很久(见 ...

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

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

  3. hdu 1257 小希的迷宫 并查集

    小希的迷宫 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1272 D ...

  4. <hdu - 1272> 小希的迷宫 并查集问题 (注意特殊情况)

     本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 Problem Description: 上次Gardon的迷宫城堡小希玩了很久(见Probl ...

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

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 题目: 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) ...

  6. HDU1272小希的迷宫–并查集

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

  7. TZOJ 2648 小希的迷宫(并查集)

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

  8. HDU - 1272 小希的迷宫 并查集判断无向环及连通问题 树的性质

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

  9. HDU-1272小希的迷宫,并查集?其实不用并查集;

    小希的迷宫                                                                                               ...

  10. M - 小希的迷宫 并查集

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

随机推荐

  1. 不直接用NSLog

    公司中不直接使用NSLog,而是利用宏定义自己的打印函数,将该打印函数写在项目的.pch文件中.调试的时候往往用到好多打印,但发布的时候确不需要.(一下是在公司中的一些处理) 自定义NSLog 一,固 ...

  2. mysql修改用户名和密码

    修改用户名 mysql> use mysql;  选择数据库Database changedmysql> update user set user="dns" wher ...

  3. codeforces 400E. Inna and Binary Logic 线段树

    题目链接 给出n个数, 定义a[1][i]为这初始的n个数, 然后a[i][j] = a[i-1][j]&a[i-1][j-1], 这样就可以得到一个三角形一共n*(n-1)/2个数. 给出一 ...

  4. python 10min系列之实现增删改查系统

    woniu-cmdb 奇技淫巧--写配置文件生成增删改查系统 视频教程 项目主页跪求github给个star, 线上demo,此页面都是一个配置文件自动生成的 详细的文章介绍和实现原理分析会发布在我的 ...

  5. MVC-03 控制器(5)

    八.动作过滤器 有时在运行Action之前或之后会需要运行一些逻辑运算,以及处理一些运行过程中所生成的异常状况,为了满足这个需求,ASP.NET MVC提供动作过滤器(Action Filter)来处 ...

  6. js大小写锁判断

    <html> <head> <title>CapsLock Demo</title> <script src="http://ajax. ...

  7. JavaScript闭包理解的关键 - 作用域链

    阮一峰的一篇文章已经对闭包的用途.概念讲解地相对清晰了. 闭包就是能够读取其他函数内部变量的函数. 但我认为里面对于作用域链的解释还不够清晰,这里作一些补充. 闭包之所以可以读取外部函数的内部变量,即 ...

  8. 搞不清FastCgi与PHP-fpm之间是个什么样的关系 - SegmentFault

    搞不清FastCgi与PHP-fpm之间是个什么样的关系 - SegmentFault 搞不清FastCgi与PHP-fpm之间是个什么样的关系 3赞 踩 收藏 我在网上查fastcgi与php-fp ...

  9. /export/App/zz/phantomjs-1.9.7-linux-x86_64/bin

    /export/App/zz/phantomjs-1.9.7-linux-x86_64/bin

  10. WPF 自定义TextBox

    1.TextBox前加图标. 效果: <TextBox Width="300" Height="30" Style="{StaticResour ...