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来走.但是她设计迷宫的思路不一样,首先她认为所有 ...
随机推荐
- Python: 列表的基本用法
列表是可变的,可以改变的序列,它能够保存任何数据类型. >>> list = [] #定义一个空列表>>> list.append(1) ...
- Android Volley完全解析(一),初识Volley的基本用法
1. Volley简介 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据.Android 系统中主要提供了两种方式来进行 ...
- Android 工程师如何快速学会web前段
Android 工程师如何快速学会web前段 今天主要聊一下本人最近在学习web前段的感受,最近html5是越来越火了,前段时间公司做了一个项目然后让我们“android”的程序猿过去帮忙把客户 端框 ...
- 大毕设-MATLAB-常用知识回顾
要用到FIR滤波器和抽样器下面研究这两个的Matlab实现: Fir滤波器: matlab上fir滤波器的关键字是fir1 在command窗口输入help fir1出现帮助文档: >> ...
- 防御病毒邮件得看U-Mail邮件网关
其实在邮件通讯中,那些病毒.垃圾邮件.钓鱼软件也相当危险,在海量邮件中,你没法确定什么时间.哪一封会发起进攻,攻击的目标都有谁?但是一旦得逞,造成的损失又特别大. 最近美国同行又发现了一个新骗局:美国 ...
- centos 6.5 msyql5.6安装
MySQL 安装 安装mysql前需要查询系统中含有的有关mysql的软件. rpm -qa | grep -i mysql 如下 代表有mysql ,则先进行卸载 mysql-libs-5.1. ...
- 关于有偿提供拼图响应式后台的通知---------pintuer ui的官方通知(www.pintuer.com)
拼图响应式前端框架版响应式后台正式发布. 考虑到目前拼图的状况,我们不打算免费开放下载,但也不会收各位朋友1分钱,该版后台将有偿提供给各位给予拼图贡献的朋友. 废话不多说,一切皆以有图有真相,下面上图 ...
- [OC笔记]@property之个人理解,大神轻拍
/** * 一个简单的对象 * * @author suzhen * */ public class SimpleObjcet { /** * 声明一个age字段 */ private Object ...
- iOS中坐标转换
坐标转换,可以用UIVIew的方法 //由要转换坐标view的superView执行该方法,rect为待转换view的frame,view是要显示到哪儿的 - (CGRect)convertRect: ...
- 4.代码同时托管到github和git.oschina.net
我的开源项目托管在Github,同时在Git@OSC也有备份,有两个地方,是不是很麻烦呢?非也非也,下面介绍一下我是怎么做的. 1.先在Github新建一个项目,点击Github主页右上角的加号 -& ...