hdoj 1272 小希的迷宫

整个文件以两个-1结尾。
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define N 100010
using namespace std;
int per[N], h[N];//数组per用来记录父节点,h数组用来记录出现的点
void init()//对所有点的父节点进行初始化
{
for(int i = 1; i <= N; i++)
per[i] = i;
}
int find(int x)//利用递归寻找某个点的根节点
{
return x==per[x] ? x : find(per[x]);
}
int join(int x, int y)//判断是否成环
{
int fx = find(x);
int fy = find(y);
if(fx == fy)//因为给的两个点本来就是连通的,如果根节点一样,就成环了
return 0;
else
{
per[fx] = fy;
return 1;
}
}
int main()
{
int n, m;
while(~scanf("%d%d", &n, &m), n!=-1 && m!=-1)
{
memset(h, 0, sizeof(h)); //将数组初始化为0,出现的点就标记为1
if(n == 0 && m == 0)
{
printf("Yes\n");
continue;
}
int flag = 1;
h[n] = 1;
h[m] = 1;
init();
join(n, m);
while(~scanf("%d%d", &n, &m), n&&m)
{
int t = join(n, m);//用t记录是否成环
if(!h[n])
h[n] = 1;
if(!h[m])
h[m] = 1;
if(t == 0)如果成环,就令flag = 0
flag = 0;
}
int root = 0;
for(int i = 1; i <= N; i++)//判断根节点的个数
{
if(h[i] && per[i] == i)
root++;
}
if(flag == 0 || root > 1)//根节点的个数大于1或者成环时输出No
printf("No\n");
else
printf("Yes\n");
}
return 0;
hdoj 1272 小希的迷宫的更多相关文章
- hdoj 1272 小希的迷宫 又一个并查集的简单应用
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- HDU 1272小希的迷宫(裸并查集,要判断是否构成环,是否是连通图)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1272 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) ...
- hdu 1272 小希的迷宫(并查集+最小生成树+队列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) ...
- hdu 1272 小希的迷宫 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 第二条并查集,和畅通工程的解法类似.判断小希的迷宫不符合条件,即有回路.我的做法是,在合并两个集 ...
- hdu 1272 小希的迷宫(java实现)
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- HDU 1272 小希的迷宫 并查集
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- hdu 1272 小希的迷宫
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- HDU 1272 小希的迷宫 (并查集)
小希的迷宫 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/L Description 我们的小伙伴Bingo身为大二学长,他乐于 ...
- HDU 1272 小希的迷宫(乱搞||并查集)
小希的迷宫 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有 ...
随机推荐
- 强强联合之jquery操作angularjs对象
jquery是一个非常强大的js框架,angularjs是一个非常牛的前端mvc框架.虽然用其中的任何一个框架在项目中够用了,但是有时候这两个框架需要混合着用,虽然不推荐.但有时候混合用时,却非常方便 ...
- php设计模式之单例模式使用示例
单例模式也就是只能实例化一次,也就代表在实例化时不可能使用new关键字,下面是使用示例,大家参考使用吧 <?php class EasyFramework_Easy_Mysql{ p ...
- http://bbs.ednchina.com/BLOG_345002072_2001308.HTM
http://bbs.ednchina.com/BLOG_345002072_2001308.HTM
- C#与Java的比较
C#与Java的比较 写完后得知维基百科里有更加全面得多的比较: http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java NET(C#) ...
- C#继承里的【就近原则】
参考博客:http://www.cnblogs.com/waynechan/p/3570702.html#2883966 参考书籍:<你必须知道的.NET>,作者王涛http://www. ...
- ef 对象无法序列化的问题(System.Data.Entity.DynamicProxies)
错误提示: System.InvalidOperationException: 生成 XML 文档时出错. ---> System.InvalidOperationException: 不应是类 ...
- lua 代码风格
参考 http://www.kancloud.cn/kancloud/lua_style_guide/66327 1.命名 1.命名法:小驼峰命名法,大驼峰命名法(Pascal命名法),小下划线命名 ...
- Spring Framework------>version4.3.5----->Reference学习心得----->总结
1.Spring Framework概述: 有很多可用版本,网址http://projects.spring.io/spring-framework/ 2.Spring Framework ...
- thinkphp ajax分页
临时更改后的page类(很多地方没修改...因为笔者PHP没学好..)如下: 复制代码 <?php namespace Fenye\libs; /** file: page.class.php ...
- JavaScript 对象、DOM对象、jquery对象的区别、转换详解
一.JavaScript 对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法的特殊数据类型. 访问对象的属性: [javascrip ...