小希的迷宫

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

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
 

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时则不满足,没想到的是一开始就可以输入0 0,此时就要输出Yes;然后脑残把continue写成了break WA了好几次

在进行路径压缩时如果用return per[x]=find(per[x])会出现栈溢出,但#pragma comment(linker, "/STACK:1024000000,1024000000")可手动扩展。

此代码使用的循环压缩路径
 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <set>
using namespace std;
#define Max 100000+10
int per[Max];
int num[Max*];
int flag;
void init()
{
for(int i=;i<Max;i++)
per[i]=i;
return;
}
int find(int a)
{
if(a==per[a])
return a;
int root=a,t=a,tmp;
while(root!=per[root]) //找到根节点
root=per[root];
while(per[t]!=root)
{
tmp=per[t];
per[t]=root;
t=tmp;
}
return root;
}
void unite(int a,int b)
{
a=find(a);
b=find(b);
if(a!=b)
per[a]=b;
else
flag=; //判断成环操作
}
int main()
{
int a,b;
int i,j;
freopen("in.txt","r",stdin);
while()
{
init();
set<int> s;
flag=;
i=;
int k=;
scanf("%d%d",&a,&b);
if(a==-&&b==-)
break;
if(a==&&b==)
{
printf("Yes\n");
continue;
}
unite(a,b);
s.insert(a);
s.insert(b);
while(scanf("%d%d",&a,&b))
{
if(a==&&b==)
break;
unite(a,b);
s.insert(a);
s.insert(b);
}
if(flag==)
{
printf("No\n");
continue;
}
set<int> :: iterator it=s.begin();
for(;it!=s.end();it++)
{
if(per[*it]==*it)
flag--;
}
if(flag==-)
printf("Yes\n");
else
printf("No\n");
}
}

小希的迷宫(HDU 1272 并查集判断生成树)的更多相关文章

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

    思路: 当图中的集合(连通子图)个数为1并且边数等于顶点数-1(即改图恰好为一棵生成树)时,输出Yes. 此题的坑:(1) 如果只输入0 0算作一组数据的话答案应该输出Yes (2) 输入数据可能并不 ...

  2. POJ 1308&&HDU 1272 并查集判断图

      HDU 1272 I - 小希的迷宫 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64 ...

  3. HDU 1272小希的迷宫(裸并查集,要判断是否构成环,是否是连通图)

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

  4. HDU 1272 小希的迷宫(乱搞||并查集)

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

  5. hdoj 1272 小希的迷宫 又一个并查集的简单应用

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

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

    http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=259#problem/D Description 上次Gardon的迷宫城堡小希 ...

  7. hdu 1116 并查集判断欧拉回路通路

    判断一些字符串能首尾相连连在一起 并查集求欧拉回路和通路 Sample Input 3 2 acm ibm 3 acm malform mouse 2 ok ok Sample Output The ...

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

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1272 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  9. HDU1272 小希的迷宫(基础并查集)

    杭电的图论题目列表.共计500题,努力刷吧 AC 64ms #include <iostream> #include <cstdlib> #include <cstdio ...

随机推荐

  1. 六度分离--hdu1869

    六度分离 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. 热点块引发的cache buffers cahins latch

    热点块引发的Cache buffer Chains latch: SQL语句即便适当进行了调优,有时也无法解决cache buffers cahins latch,若在编写SQL语句时的SQL工作方式 ...

  3. 【转】Ubuntu环境下SSH的安装及使用

    原文网址:http://blog.csdn.net/netwalk/article/details/12952051 SSH是指Secure Shell,是一种安全的传输协议,Ubuntu客户端可以通 ...

  4. 【剑指offer】面试题26:复杂链表的复制

    题目: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点). 思路: 复制自身到下一个结点: 设置新结点的random指针: 分离链表. 注意:判 ...

  5. Populating Next Right Pointers in Each Node II 解答

    Question Follow up for problem "Populating Next Right Pointers in Each Node". What if the ...

  6. Subsets II 解答

    Question Given a collection of integers that might contain duplicates, nums, return all possible sub ...

  7. csdn博客被一个无名网站套用,不知大家是否也是这样?

    今天闲来无事,用google搜索了一下自己csdn的博客名,查看了一下搜索结果,发现自己在csdn上的博客被其他一下网站转载了,转载后注明作者的网站这里我也就不去说了,问题是我发现了一个名叫“开心问答 ...

  8. 第07讲- Android项目的打包apk

    第07讲Android项目的打包apk 方法一:在工作目录bin文件夹下有一个与项目同名的apk文件 (最懒惰的方式,不推荐,不安全,不利于版本更新,只有在开发模式时使用) 方法二:使用key方式 签 ...

  9. hdu 5675 ztr loves math(数学技巧)

    Problem Description ztr loves research Math.One day,He thought about the "Lower Edition" o ...

  10. hdu 5612 Baby Ming and Matrix games(dfs暴力)

    Problem Description These few days, Baby Ming is addicted to playing a matrix game. Given a n∗m matr ...