题解:

首先,init,find,union操作都是模版,多敲几遍,在记记,就没问题了。

然后,本题就是多了一个flag数组,记录数据是否出现过,最后记录最小,和最大,遍历一般他们的父亲,只有一个就是yes,否则no。

但又2个要注意:①当输入只有0 0的时候是输出yes,(题目里也没说啊,其实这我也不知道为啥要是yes)

②要判断有内环的情况,具体看代码注释。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <queue>
#include <algorithm>
#include <set>
using namespace std;
typedef long long LL;
const int maxn = 1e5+5;
const double eps = 1e-7; int rankk[maxn], fa[maxn], flag[maxn];
///基本上是模板
void Init(int x)
{
for(int i=0; i<=x; i++)
{
fa[i] = i;
flag[i] = rankk[i] = 0;
}
} int Find(int x)
{
if(fa[x] != x)
fa[x] = Find(fa[x]);
return fa[x];
} void Union(int x, int y)
{
int fx = Find(x);
int fy = Find(y);
if(fx == fy)
return;
if(rankk[fx] > rankk[fy])
fa[fy] = fx;
else
{
fa[fx] = fy;
if(rankk[fx] == rankk[fy])
rankk[fy]++;
}
} int main()
{
int a, b;
while(cin>>a>>b)
{
bool ok = 0;
int cnt = 0;
if(a==-1 && b==-1)
break;
///当a==0和b==0的时候也是符合条件的
if(a==0 && b==0)
{
puts("Yes");
continue;
}
Init(maxn);
int Max = -99999999, Min = 999999999;
while(a!=0 && b!=0)
{ //找最大和最小值, 循环一遍,只有一个父亲就yes了 但有的点没有涉及,所以要开flag数组记录
//最后是这个点要出现过,并遍历所有出现过的点,父亲都只有一个才yes
Max = max(max(a,b),Max);
Min = min(min(a,b),Min);
flag[a] = flag[b] = 1;
if(Find(a) == Find(b))
{
ok = 1;//这判断的是环的时候的情况
// puts("内环的时候的情况");
}
else
Union(a, b);
cin>>a>>b;
}
if(ok)
puts("No");
else
{
for(int i=Min; i<=Max; i++)
if(flag[i] && fa[i]==i)//这个判断就是代表只有一个在原点,也就是一个父亲连着所有儿子
cnt++;
if(cnt == 1)
puts("Yes");
else
puts("No");
}
}
return 0;
}

  

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

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

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

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

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

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

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

  4. (step5.1.6)hdu 1272(小希的迷宫——并查集)

    题目大意:输入一系列的点,判断这些点组成的图符不符合小希的思路(无环.连通) 解题思路: 1)如果两个节点的根节点相同,那么在这两个节点之间添加1条边以后,这个图肯定有环路. 2)孤立节点:被使用过& ...

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

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

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

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

  7. hdu 1272 小希的迷宫(并查集+最小生成树+队列)

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

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

    小希的迷宫 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/L Description 我们的小伙伴Bingo身为大二学长,他乐于 ...

  9. HDU 1272 小希的迷宫(并查集) 分类: 并查集 2015-07-07 23:38 2人阅读 评论(0) 收藏

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

  10. HDU - 1272 小希的迷宫 【并查集】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1272 思路 只需要判断 这张图 无环 并且只有一个连通块 就可以了 要注意 如果 只输入 0 0 那给 ...

随机推荐

  1. 越狱Season 1-Episode 6: Riots, Drills and the Devil: Part 1

    Season 1, Episode 6: Riots, Drills and the Devil: Part 1 - Diamond: Just a few more rides. 就再多玩几次吧 O ...

  2. IE 下加载jQuery

    转:http://www.iitshare.com/ie8-not-use-native-json.html 解决在IE8中无法使用原生JSON的问题   起因 在项目中要将页面上的js对象传给后台, ...

  3. 论文笔记之:Attention For Fine-Grained Categorization

    Attention For Fine-Grained Categorization Google ICLR 2015 本文说是将Ba et al. 的基于RNN 的attention model 拓展 ...

  4. Nanopore sensors for nucleic acid analysis 论文阅读笔记

    Nanopore sensors for nucleic acid analysis Bala Murali Venkatesan and Rashid Bashir 用于核酸分析的纳米孔传感器 纳米 ...

  5. Unity学习资源

    NGUI文档及视频: http://www.tasharen.com/forum/index.php?topic=6754 动态更新的解决方案: http://game.ceeger.com/foru ...

  6. elasticsearch介绍集群,模拟横向扩展节点、节点宕机、改变分片

        出处:[http://www.cnblogs.com/dennisit/p/4133131.html] ,防楼主删博,故保留一份! elasticsearch用于构建高可用和可扩展的系统.扩展 ...

  7. NLTK中的词性

    NOUN n,VERB v ,ADJ a, ADV r, ADJ_SAT s     NOUN: [('s', ''), ('ses', 's'), ('ves', 'f'), ('xes', 'x' ...

  8. for循环小题

    已知数列1,1,2,3,5,8,…….,N.输出前N项的和: 出1到100之间所有偶数之和 国际象棋问题 已知数列1,1,2,3,5,8,…….,N.输出前N项的和: int a = 1, b = 1 ...

  9. python_redis之篇

    一.redis基本安装和简单使用 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合) ...

  10. 加快SQL连接速度

    [mysqld] skip-name-resolve       http://www.jb51.net/article/27616.htm