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来走.但是她设计迷宫的思路不一样,首先她认为所有 ...
随机推荐
- PHP实现队列及队列原理
看看各语言实现队列的方法:PHP实现队列:第一个元素作为队头,最后一个元素作为队尾 <?php /** * 队列就是这么简单 * * @link http://www.phpddt.com */ ...
- jQuery Mobile的基本使用
本人是软件开发的初学者,总结了一点点日常所学,记录在此,主要目的是鼓励自己坚持学习,怕有一天忘记了,还能复习曾经学过的知识点. 如有大神路过为我指点迷津,纠正改错更是感激不尽,但请不要喷我这个菜鸟!谢 ...
- [转]配置sonar、jenkins进行持续审查
本文以CentOS操作系统为例介绍Sonar的安装配置,以及如何与Jenkins进行集成,通过pmd-cpd.checkstyle.findbugs等工具对代码进行持续审查. 一.安装配置sonar ...
- 学习制作第一个 openfire 插件
本文地址:http://www.cnblogs.com/jying/p/3683409.html 蛋疼的自学路~~~ 开始想法是修改openfire源码,但修改后发现不好测试,不会发布,不会使用,各种 ...
- 《IT蓝豹》PlayNewsStandDemo资讯类新闻客户端框架
PlayNewsStandDemo资讯类新闻客户端框架,支持tab滑动切换,当切换到最左边或者最后边的时候停止滑动 本例子切换tab的效果根据AccelerateDecelerateInterpola ...
- 新年PR交期回写,展望期由14天改为30天,FP_PR2SAP ;转单量改为100W;FP_PR2SAP_MOD_NEW
- MonoDev 冷门而好用的功能
[MonoDev 冷门而好用的功能] 1.Ctrl + B.跳转到对应的{}.(). 2.View -> Editor Layout -> 2 Columns.双屏工作. 3.Editr ...
- Camtasia Studio屏幕录像安装与破解
Camtasia Studio汉化版是一款功能强大的屏幕录像工具,能在任何颜色模式下轻松地记录屏幕动作,包括影像.音效.鼠标移动轨迹.解说声音等.Camtasia Studio具有强大的视频播放和视频 ...
- 微软软件开发技术二十年回顾-COM、OLE、ActiveX及COM+篇
本文摘自:http://www.job168.com/info/read_100394.html 微软的许多技术,如OLE.ActiveX.以及DirectX等都是基于COM技术而建立起来的.微软本身 ...
- LeetCode之Largest Rectangle in Histogram浅析
首先上题目 Given n non-negative integers representing the histogram's bar height where the width of each ...