SDUTOJ 2798 小鑫的城堡 ——并查集
来源:互联网 发布:美国非农数据最新信息 编辑:程序博客网 时间:2024/05/21 10:25
小鑫的城堡
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
从前有一个国王,他叫小鑫。有一天,他想建一座城堡,于是,设计师给他设计了好多简易图纸,主要是房间的连通的图纸。小鑫希望任意两个房间有且仅有一条路径可以相通。小鑫现在把设计图给你,让你帮忙判断设计图是否符合他的想法。比如下面的例子,第一个是符合条件的,但是,第二个不符合,因为从5到4有两条路径(5-3-4和5-6-4)。
输入
多组输入,每组第一行包含一个整数m(m < 100000),接下来m行,每行两个整数,表示了一条通道连接的两个房间的编号。房间的编号至少为1,且不超过100000。
输出
每组数据输出一行,如果该城堡符合小鑫的想法,那么输出"Yes",否则输出"No"。
示例输入
52 52 31 33 64 661 21 33 43 55 66 4
示例输出
YesNo
提示
来源
xj
把输入的数记录下来(hs数组是为了不记录重复的点),按照克鲁斯卡尔的思想,如果两个点已经间接连接,这两个点再连接的话必然成环,最后判所有的点是否都连接,去掉两个点集的数据,例如:
2
1 2
3 4
输出为No
#include <stdio.h>#include <stdlib.h>#include <string.h>int s[100010];int hs[100010];int q[100010];int nfind(int x){ int r = x,q; while(x != s[x]) { x = s[x]; } while(s[r] != x) { q = s[r]; s[r] = x; r = q; } return x;}int main(){ int i,n,k,x,y,bj,flag; while(~scanf("%d",&n)) { bj = 0; flag = 1; k = 0; memset(hs,0,sizeof(hs)); for(i = 0;i <= 100000;i++) { s[i] = i; } for(i = 0; i < n;i++) { scanf("%d%d",&x,&y); if(!hs[x]) { hs[x] = 1; q[k++] = x; } if(!hs[y]) { hs[y] = 1; q[k++] = y; } int fx = nfind(x); int fy = nfind(y); if(fx != fy) { s[fx] = fy; } else { flag = 0; } }// for(i = 1;i < 7;i++)// {// printf("%d ",s[i]);// }// puts(""); if(flag) { bj = nfind(q[0]); // printf("bj = %d\n",nfind(q[0])); for(i = 1;i < k;i++) { if(nfind(q[i]) != bj) { flag = 0; break; } } } if(flag) { printf("Yes\n"); } else { printf("No\n"); } } return 0;}
0 0
- SDUTOJ 2798 小鑫的城堡 ——并查集
- 并查集——小鑫的城堡
- 小鑫的城堡——并查集
- 小鑫的城堡——并查集
- [2798]小鑫的城堡 SDUTOJ
- 并查集--小鑫的城堡
- SDUT OJ 2798小鑫的城堡 并查集
- SDUT 2798-小鑫的城堡(并查集)
- sdut 2798 小鑫的城堡(并查集)
- SDUT2798——小鑫的城堡(并查集)
- 寒假训练--并查集--小鑫的城堡
- sdoj 小鑫的城堡 并查集
- 小鑫的城堡(并查集)
- 小鑫的城堡(参考的小希的迷宫写的代码)并查集
- 杭电ACM1269——迷宫城堡~~并查集
- SDUTOJ [2801] 并查集模板
- 小鑫的城堡
- 小鑫的城堡
- Android ViewPager多页面滑动切换以及动画效果
- 微笑みの旅
- 我为什么不无偿加班,你也不应该
- 秒杀排列组合(下)————组合篇
- 基于MFC简单图片裁剪工具
- SDUTOJ 2798 小鑫的城堡 ——并查集
- CentOS下安装ddd
- android介绍
- unity3d插件Daikon Forge GUI 中文教程-5-高级控件listbox和progress bar的使用
- poj 3225 区间(区间的交并补操作)
- Hadoop2.4.1在lixun14.0.4环境的安装与配置
- 信号量实例
- SGU 311. Ice-cream Tycoon 树状数组
- Android 访问权限设置