Poj 2492 A Bug's Life(带权并查集)(水)
2016-07-23 16:13
375 查看
这道题还是很快就写出来了,之前也做过好几道类似的题目,不过输出略坑~
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = 2e4+5;
int father[maxn],Rank[maxn],n,m;
int query(int x) {
if(x != father[x]) {
int per = father[x];
father[x] = query(father[x]);
Rank[x] = (Rank[x] + Rank[per] + 2) % 2;
}
return father[x];
}
int main() {
int tt;
scanf("%d",&tt);
for(int k = 1;k <= tt;k++) {
scanf("%d%d",&n,&m);
for(int i = 0;i <= n;i++) {
father[i] = i;
Rank[i] = 0;
}
int x,y,flag = 1;
for(int i = 1;i <= m;i++) {
scanf("%d%d",&x,&y);
if(flag) {
int a = query(x);
int b = query(y);
if(a == b) {
if((Rank[y] - Rank[x] + 2) % 2 == 0)
flag = 0;
}
else {
father[b] = a;
Rank[b] = (Rank[x] - Rank[y] + 3) % 2;
}
}
}
if(flag)
printf("Scenario #%d:\nNo suspicious bugs found!\n\n",k); //每组输出空一行
else
printf("Scenario #%d:\nSuspicious bugs found!\n\n",k);
}
return 0;
}
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = 2e4+5;
int father[maxn],Rank[maxn],n,m;
int query(int x) {
if(x != father[x]) {
int per = father[x];
father[x] = query(father[x]);
Rank[x] = (Rank[x] + Rank[per] + 2) % 2;
}
return father[x];
}
int main() {
int tt;
scanf("%d",&tt);
for(int k = 1;k <= tt;k++) {
scanf("%d%d",&n,&m);
for(int i = 0;i <= n;i++) {
father[i] = i;
Rank[i] = 0;
}
int x,y,flag = 1;
for(int i = 1;i <= m;i++) {
scanf("%d%d",&x,&y);
if(flag) {
int a = query(x);
int b = query(y);
if(a == b) {
if((Rank[y] - Rank[x] + 2) % 2 == 0)
flag = 0;
}
else {
father[b] = a;
Rank[b] = (Rank[x] - Rank[y] + 3) % 2;
}
}
}
if(flag)
printf("Scenario #%d:\nNo suspicious bugs found!\n\n",k); //每组输出空一行
else
printf("Scenario #%d:\nSuspicious bugs found!\n\n",k);
}
return 0;
}
相关文章推荐
- POJ 1984 Navigation Nightmare (带权并查集)
- POJ 1182 食物链(带权并查集)
- HDU1325 带权并查集 修改模版
- HDU 2818 Building Block(带权并查集)
- poj 1182 带权并查集
- POJ 1988 Cube Stacking(带权并查集)
- POJ 2492[带权并查集]
- HDU 3038 带权并查集判错(详解)
- Cf Round #360 (Div. 1) 687D Dividing Kingdom II
- 2014携程初赛第二场
- poj 1182(带权并查集)
- POJ-1182 食物链 (带权并查集)
- codeforces 437D The Child and Zoo
- HDU 1829 A Bug‘s Life 带权并查集&&带偏移量的写法
- poj2492 A Bug's Life
- D. Mahmoud and a Dictionary
- HDU-2818-Building Block
- HDU-3038-How Many Answers Are Wrong
- HDU-3047-Zjnu Stadium
- HDU-3172-Virtual Friends