小希的迷宫(HDU 1272 并查集判断生成树)
小希的迷宫
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 38870 Accepted Submission(s): 11921

整个文件以两个-1结尾。
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
当存在环或者连通分量不为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 并查集判断生成树)的更多相关文章
- 小希的迷宫 HDU - 1272 (并查集)
思路: 当图中的集合(连通子图)个数为1并且边数等于顶点数-1(即改图恰好为一棵生成树)时,输出Yes. 此题的坑:(1) 如果只输入0 0算作一组数据的话答案应该输出Yes (2) 输入数据可能并不 ...
- POJ 1308&&HDU 1272 并查集判断图
HDU 1272 I - 小希的迷宫 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- HDU 1272小希的迷宫(裸并查集,要判断是否构成环,是否是连通图)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1272 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 1272 小希的迷宫(乱搞||并查集)
小希的迷宫 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有 ...
- hdoj 1272 小希的迷宫 又一个并查集的简单应用
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- 小希的迷宫(hdu1272 并查集)
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=259#problem/D Description 上次Gardon的迷宫城堡小希 ...
- hdu 1116 并查集判断欧拉回路通路
判断一些字符串能首尾相连连在一起 并查集求欧拉回路和通路 Sample Input 3 2 acm ibm 3 acm malform mouse 2 ok ok Sample Output The ...
- (并查集)小希的迷宫 --HDU -- 1272
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1272 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- HDU1272 小希的迷宫(基础并查集)
杭电的图论题目列表.共计500题,努力刷吧 AC 64ms #include <iostream> #include <cstdlib> #include <cstdio ...
随机推荐
- MyEclipse安装Eclipse Memory Analyzer插件,并进行错误文件分析流程
在看深入JVM虚拟机一书(p50,2.4 实战OutOfMemoryError),有一个Java堆溢出的例子,使用到了Eclipse Memory Analyzer插件,由于自己现在使用的是MyEcl ...
- 在win7与XP系统下 C#缺省路径不同
当我们加载文件时,若只输入文件名,在WIN7下默认是主程序所在文件夹路径 在XP下是上次本程序游览的有效路径 所以以后程序中尽量避免只传文件名
- gnuplot
一. 简介 gnuplot是一个命令行驱动的科学绘图工具,可将数学函数或数值资料以平面图或立体图的形式画在不同种类终端机或绘图输出装置上.gnuplot既支持命令行交互模式,也支持脚本. 二. 特性 ...
- Java通过JNI调用C/C++
From:http://www.cnblogs.com/mandroid/archive/2011/06/15/2081093.html JNI是JAVA标准平台中的一个重要功能,它弥补了JAVA的与 ...
- Openstack REST API
There are some high quality resources that already cover the OpenStack API, so this is a YEA (yet an ...
- if条件语句练习(相亲)
public class a { public static void main(String[] arg){ //F是房子,Q是钱,N是能力,等于0说明没有,等于1说明有: 有一项具备则可以嫁,都不 ...
- URL重写是实现PHP伪静态
URL重写是实现PHP伪静态 应该这样说才是,URL重写是实现PHP伪静态的方式之一, 具体如: http://www.plframe.com/?x=1&y=2&z=3 换成 http ...
- Maven项目部署方案
以xbank项目做为应用背景,简单说明一下Maven项目的部署方案: 1.项目说明 xbank基础服务端的11个子项目均采用Maven搭建: 其中各项目功能设计如下: froad-xbank-serv ...
- Bootstrap在线编辑器简单分享
Bootstrap 已经使响应式网站开发变得简单很多. 但是如果你不必手动写全部代码,事情会如何呢? 如果你可以自由地选择你想要使用的Bootstrap 组件.并可以把它们拖拽到画布中,事情会如何呢? ...
- poj 1523 SPF(tarjan求割点)
本文出自 http://blog.csdn.net/shuangde800 ------------------------------------------------------------ ...