[kuangbin带你飞]专题五 并查集 J POJ 2492
2016-10-17 22:08
435 查看
题目地址:https://vjudge.net/contest/66964#problem/J
思路:0,1分别代表与根节点相同与不同。如果两个节点的根节点相同,而且这两个节点与根节点关系又是相同的,则说明有错误。
AC代码:
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
const int maxn=2000+10;
int fa[maxn];
int sum[maxn];
int t,n,m;
int find(int p)
{
if(p!=fa[p])
{
int pre=fa[p];
fa[p]=find(fa[p]);
sum[p]=(sum[p]+sum[pre])%2;
}
return fa[p];
}
int main()
{
scanf("%d",&t);
for(int casei=1;casei<=t;casei++)
{
for(int i=0;i<maxn;i++)
{
fa[i]=i;
sum[i]=0;
}
scanf("%d%d",&n,&m);
int flag=0;
for(int i=1;i<=m;i++)
{
int p,q;
scanf("%d%d",&p,&q);
int s=1;
int fp=find(p);
int fq=find(q);
//printf("%d %d\n",fp,fq);
if(fp==fq)
{
if(s!=abs(sum[p]-sum[q]))
{
flag=1;
}
}
else
{
fa[fq]=fp;
sum[fq]=(sum[p]+sum[q]+s)%2;
}
}
if(flag)
printf("Scenario #%d:\nSuspicious bugs found!\n",casei);
else
printf("Scenario #%d:\nNo suspicious bugs found!\n",casei);
if(casei<t)
printf("\n");
}
}
思路:0,1分别代表与根节点相同与不同。如果两个节点的根节点相同,而且这两个节点与根节点关系又是相同的,则说明有错误。
AC代码:
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
const int maxn=2000+10;
int fa[maxn];
int sum[maxn];
int t,n,m;
int find(int p)
{
if(p!=fa[p])
{
int pre=fa[p];
fa[p]=find(fa[p]);
sum[p]=(sum[p]+sum[pre])%2;
}
return fa[p];
}
int main()
{
scanf("%d",&t);
for(int casei=1;casei<=t;casei++)
{
for(int i=0;i<maxn;i++)
{
fa[i]=i;
sum[i]=0;
}
scanf("%d%d",&n,&m);
int flag=0;
for(int i=1;i<=m;i++)
{
int p,q;
scanf("%d%d",&p,&q);
int s=1;
int fp=find(p);
int fq=find(q);
//printf("%d %d\n",fp,fq);
if(fp==fq)
{
if(s!=abs(sum[p]-sum[q]))
{
flag=1;
}
}
else
{
fa[fq]=fp;
sum[fq]=(sum[p]+sum[q]+s)%2;
}
}
if(flag)
printf("Scenario #%d:\nSuspicious bugs found!\n",casei);
else
printf("Scenario #%d:\nNo suspicious bugs found!\n",casei);
if(casei<t)
printf("\n");
}
}
相关文章推荐
- [kuangbin带你飞]专题五 并查集 A POJ 2236
- [kuangbin带你飞]专题五 并查集
- [kuangbin带你飞]专题五 并查集——题解
- [kuangbin带你飞]专题五 并查集 B POJ 1611
- [kuangbin带你飞]专题五 并查集 A - Wireless Network
- hdu 3038D - How Many Answers Are Wrong [kuangbin带你飞]专题五 并查集
- [kuangbin带你飞]专题五 并查集 F POJ 1417
- [kuangbin带你飞]专题五 并查集 N POJ 1308
- [kuangbin带你飞]专题五 并查集 G POJ 1456
- 【 题集 】 【kuangbin带你飞】专题五 并查集 更新ing...
- [kuangbin带你飞]专题四 最短路练习 J POJ 1511
- [kuangbin带你飞]专题五 并查集 D HDU 3038
- [kuangbin带你飞]专题五 并查集 I POJ 1984
- [kuangbin带你飞]专题五 并查集 H POJ 1733
- [kuangbin带你飞]专题五 【并查集】 【--完结--】
- hdu 1272 小希的迷宫[kuangbin带你飞]专题五 并查集
- [kuangbin带你飞]专题五 并查集 E POJ 1182
- [kuangbin带你飞]专题五 并查集 K POJ 2912
- POJ 2236 A - Wireless Network[kuangbin带你飞]专题五 并查集
- [kuangbin带你飞]专题一 简单搜索 x