poj 2492 -- A Bug's Life(并查集)
2013-02-08 00:25
302 查看
判断bug中是否有guy。。。。。。。。。。
用n和n+max表示逻辑正反两反面,两个同一集合内的两个都小于max代表有相同,一个小于一个大于代表不同
用n和n+max表示逻辑正反两反面,两个同一集合内的两个都小于max代表有相同,一个小于一个大于代表不同
#include<iostream> #include<cstdio> using namespace std; const int maxn=10010; int pre[2*maxn]; int cnt; int find(int x) { if(pre[x]!=x) pre[x]=find(pre[x]); return pre[x]; } void Union(int x,int y) { pre[find(x)]=find(y); } int main() { int t; cin>>t; for(int num=1; num<=t; num++) { for(int i=0; i<2*maxn; pre[i++]=i); int n,flag=1; cin>>cnt>>n; while(n--) { int a,b; scanf("%d%d",&a,&b); if(find(a)==find(b)) flag=0; else { Union(a,b+maxn); Union(a+maxn,b); } } printf("Scenario #%d:\n",num); if(flag) printf("No suspicious bugs found!\n\n"); else printf("Suspicious bugs found!\n\n"); } }
相关文章推荐
- POJ 2492 A Bug's Life(并查集)
- hdu 1829 &poj 2492 A Bug's Life(推断二分图、带权并查集)
- POJ ~ 2492 ~ A Bug's Life (带权并查集)
- poj 2492 A Bug's Life 带权并查集
- POJ 2492/hdu 1829 A Bug's Life【带权并查集】
- POJ 2492 A Bug's Life(并查集)
- hdu 1829 &poj 2492 A Bug's Life(判断二分图、带权并查集)
- poj_2492 A Bug's Life(并查集)
- poj 2492 A Bug's Life(带类别偏移并查集)
- poj_2492 A Bug's Life (并查集)
- poj 2492 A Bug's Life(种类并查集)
- POJ 2492 A Bug's Life [数据结构-并查集 union-find sets]
- POJ 2492 A Bug's Life(并查集)
- poj-2492 -A Bug's Life-并查集的使用
- poj 2492 A Bug's Life(带权并查集)
- poj 2492 A Bug's Life(并查集)分组并查集
- 【poj 2492】A Bug's Life (带权并查集)
- [POJ 2492] A Bug's Life [扩展并查集]
- Hdu 1892&&Poj 2492 A Bug's Life[判断二分图 || 种类并查集]
- HDU1829&POJ 2492 a bug's life [并查集||二分图染色]