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 ...
随机推荐
- 无废话SharePoint入门教程三[创建网站集和网站]
一.前言 前两篇文章讲解了什么是SharePoint,并且介绍了在SharePoint中一些常用的概念.但概念终究是概念,我们还是要脚踏实地的去动手实践.下面的文章对于了解SharePoint的人来说 ...
- web移动端资源整(1)
meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...
- .htacess的url重写(支持伪静态)
html网页纯静态: 1.加载的时候不需要调用数据库,打开速度快,另外减少了服务端脚本的匹配时间.2.减少了服务器对数据响应的负荷.3.从安全角度讲,纯静态网页不易遭受黑客攻击.4.从网站稳定性来讲, ...
- 如何应用.NET中的消息队列服务
建立一个队列是应用MSMQ的第一步.您可以通过Windows计算机管理控制台中的消息队列选项完成这一操作,或者自己编程建立一个队列.列表A中的C#代码建立了一个新的私有MSMQ消息队列(如果不存在队列 ...
- 用php获取本周,上周,本月,上月,本季度日期的代码
echo date("Ymd",strtotime("now")), "\n"; echo date("Ymd",str ...
- 用自定义getElementByClassName函数做“查看更多”的特效
<!DOCTYPE html> <html> <head> <title>查看更多</title> <meta charset=&qu ...
- 易云盘(nester)-面对企业的和团队文档管理的平台
易云盘(nester)是本人的另外一款作品,先前开发和维护的在线设计工具Visor也已经合并在Nester的最新版里了. 目前作为共享版发布. 特点 Nester后端是以Spring Framewor ...
- Qt中2D绘图问题总结(一)----------基本的绘制与填充
刚刚开始学习Qt不久,才开始渐渐地熟悉基础内容,学习过程中的一些知识的总结和感悟希望通过博客记录下来,与大家分享学习的同时,也是对自己坚持下去的鞭策,废话不多说了,开始第一次的小总结吧. Qt提供了强 ...
- LINUX:read、array、declare
read:要读取来自键盘输入的变量 使用规则: read [-pt] variale 选项与参数: -p:后面接提示字符: -t:后面接等待的“秒数”: 如果read之后不加任何参数,直接加上变量名称 ...
- 对vector<int>进行快速排序
#include <iostream>#include <string>#include <vector>using namespace std;void Quic ...