G - 小希的迷宫
Description

Input
整个文件以两个-1结尾。
Output
Sample Input
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
Sample Output
#include<cstdio>
#include<string.h>
using namespace std;
//int rank[100010];
int father[];
int max1=;
int vis[];
int find(int x)
{
if(x!=father[x])
father[x]=find(father[x]);
return father[x];
}
bool Union(int x,int y)
{
int x1=find(x),y1=find(y);
if(x1!=y1)
{
father[y1]=x1;
return true;
//rank[x]+=rank[y];
//if(max1<rank[x]) max1=rank[x];
//return;
}
return false;
}
int main()
{
int a,b;
while(scanf("%d %d",&a,&b)!=EOF&&a!=-&&b!=-)
{
for(int i=;i<=;i++)
father[i]=i;
if(a==&&b==){printf("Yes\n");continue;} //注意continue!!!
int min=;
int max=;
int flag=;
memset(vis,,sizeof(vis));
while(a||b)
{
if(a>max) max=a;
if(b>max) max=b;
if(a<min) min=a;
if(b<min) min=b;
vis[a]=;
vis[b]=;
if(!Union(a,b)) flag=;
scanf("%d %d",&a,&b);
}
if(flag==) printf("No\n");
else{
int ans=;
for(int i=min;i<=max;i++)
if(vis[i]&&father[i]==i)
ans++;
if(ans==) printf("Yes\n");
else printf("No\n");
} }
return ;
}
换了一个小思路
#include<cstdio>
#include<string.h>
using namespace std;
//int rank[100010];
int father[];
int rank[];
int max1=;
//int vis[100010];
int find(int x)
{
if(x!=father[x])
father[x]=find(father[x]);
return father[x];
}
bool Union(int x,int y)
{
int x1=find(x),y1=find(y);
if(x1!=y1)
{
father[y1]=x1; rank[x1]+=rank[y1];//记录深度
if(max1<rank[x1]) max1=rank[x1];
return true;
//rank[x]+=rank[y];
//if(max1<rank[x]) max1=rank[x];
//return;
}
return false;
}
int main()
{
int a,b;
while(scanf("%d %d",&a,&b)!=EOF&&a!=-&&b!=-)
{
for(int i=;i<=;i++)
{
father[i]=i;rank[i]=;
} if(a==&&b==){printf("Yes\n");continue;}
int flag=;
//memset(vis,0,sizeof(vis));
int ans=;
while(a||b)
{
ans=ans+;//这是记录输入的边的条数
if(!Union(a,b)) flag=;
scanf("%d %d",&a,&b);
}
// printf("%d %d\n",ans,max1);
if(flag==) printf("No\n");
else if(max1-==ans) printf("Yes\n");
else printf("No\n");
}
return ;
}
G - 小希的迷宫的更多相关文章
- G - 小希的迷宫(并查集)
1今天准备复习三道以前做过的题呢,结果只看了一道,也因为交题的时候没把测试时候为了方便而改的数字改过来而wrong answer,浪费了好长时间,啊啊啊~~ 不过这道题应该是掌握了,嘿嘿…… Desc ...
- 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 ...
- 小希的迷宫(MST单棵树判断法则)
小希的迷宫 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 第二条并查集,和畅通工程的解法类似.判断小希的迷宫不符合条件,即有回路.我的做法是,在合并两个集 ...
- hdu 1257 小希的迷宫 并查集
小希的迷宫 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1272 D ...
- HDU 1272 小希的迷宫 (并查集)
小希的迷宫 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/L Description 我们的小伙伴Bingo身为大二学长,他乐于 ...
- 小希的迷宫(HDU 1272 并查集判断生成树)
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- 小希的迷宫--hdu1272(并查集)
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
随机推荐
- css3中webkit-box的用法
转自:http://www.frontopen.com/288.html 1.之前要实现横列的web布局,通常就是float或者display:inline-block; 但是都不能做到真正的流体布局 ...
- PL/SQL设置快捷键
PL/SQL常用的快捷方式: sf= select * from sr=select t.*,t.rowid from t sd = select distinct * from d=delete f ...
- mysql创建用户及授权相关命令
移步: https://zhidao.baidu.com/question/1576368583039067980.html
- 给vs2010换皮肤
http://www.cnblogs.com/aolinwxfx/articles/2379252.html O(∩_∩)O哈哈~,很不错哦
- ittun配置和使用教程
有好久没写博了.时间过得真快,一下子一年又过去了. 不墨迹这么多了. 作为一个前端,页面写好了少不了做测试以及给其他同事看看效果,然而公司没有测试服务器,真是悲催哦. 一直都是用ip地址看页面的.但是 ...
- collectionview cell吸顶效果
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Hiragino Sans GB"; color: #cf8724 } ...
- Bootstrap <基础二十一>徽章(Badges)
Bootstrap 徽章(Badges).徽章与标签相似,主要的区别在于徽章的边角更加圆滑. 徽章(Badges)主要用于突出显示新的或未读的项.如需使用徽章,只需要把 <span class= ...
- Spring的入门的程序
1 下载Spring的开发包: spring-framework-3.2.0.RELEASE-dist.zip ---Spring开发包 docs :spring框架api和规范 libs :spri ...
- HOJ 1004: Prime Palindromes
问题:输入两个整数 a 和 b (5 <= a < b <= 1,000,000,000),输出 [a, b] 内的所有回文质数. 最简单的暴力解法是依次遍历 [a, b] 范围内的 ...
- Asp.net MVC与Javascript
特性验证 首先:在web.config文件中<appSettings>节点内添加<add key="ClientValidationEnabled" value= ...