HDU 1829 A Bug's Life(并查集的应用)
来源:互联网 发布:中国移动数据漫游 编辑:程序博客网 时间:2024/06/03 20:06
利用yix[]这个数组来标记性别关系,然后把性别相同的Bug合并到一个集合,然后发现两只Bug在同一个集合便返回有可疑的Bug。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=2008;int yix[maxn],fa[maxn];void init(int n){ for(int i=1; i<=n; i++) { fa[i]=i; yix[i]=0; }}int find(int x){ return fa[x]==x?x:find(fa[x]);}void merge(int a,int b){ int x=find(a); int y=find(b); if(x!=y) fa[x]=y;}int main(){ int T; scanf("%d",&T); for(int i=1; i<=T; i++) { int flag=0; int n,m,a,b; scanf("%d%d",&n,&m); init(n); while(m--) { scanf("%d%d",&a,&b); if(!yix[a]&&!yix[b]) { yix[a]=b; yix[b]=a; } else if(!yix[a]&&yix[b]) { yix[a]=b; merge(a,yix[b]); } else if(yix[a]&&!yix[b]) { yix[b]=a; merge(b,yix[a]); } else { merge(yix[a],b); merge(yix[b],a); } if(find(a)==find(b)) flag=1; } printf("Scenario #%d:\n",i); if(flag) printf("Suspicious bugs found!\n"); else printf("No suspicious bugs found!\n"); printf("\n"); } return 0;}
0 0
- HDU 1829 A Bug's Life(并查集的应用)
- hdu 1829 A Bug's Life(并查集)
- HDU 1829 A Bug's Life (并查集)
- HDU 1829 A Bug's Life (并查集)
- HDU 1829 A Bug's Life (并查集)
- HDU-1829 A Bug's Life(并查集)
- HDU 1829 A Bug's Life(并查集)
- HDU - 1829 A Bug's Life (并查集应用)
- Hdu 1829 A Bug's Life && Poj 1182 食物链 (并查集偏移量的应用)
- 并查集Hdu 1829 A Bug's Life
- HDU 1829 A Bug's Life 并查集
- HDU 1829 A Bug's Life(并查集)
- HDU 1829 A Bug's Life(种类并查集)
- hdu 1829 A Bug's Life (基础并查集)
- HDU 1829 A Bug's Life 并查集
- hdu 1829 A Bug's Life 并查集
- hdu 1829 A Bug's Life 并查集
- hdu 1829 A Bug's Life ( 并查集 )
- 从svn上面签下代码时需要注意的一件事——记得重新选择JDK版本
- UVA - 12874 Blanket
- 百度搜索技巧(一)
- 百度地图 根据距离设置地图比例(zoom)
- spark概念以应用场合
- HDU 1829 A Bug's Life(并查集的应用)
- vm三种连接方式bridge, nat, host-only
- ZF
- TCP/IP详解学习笔记--TCP连接的建立与终止
- 隐藏iOS导航条底部与self.view的分界线的简单方法
- iOS7下获取内付费的receipt
- 即时通讯 - Android、iOS、J2EE服务端的非对称加密传输数据
- java 工厂模式
- python中is和 == 的区别