POJ-2492-A Bug's Life

来源:互联网 发布:淘宝拧盖器 编辑:程序博客网 时间:2024/05/21 14:09

这个题同样属于并查集中求偏移量的问题,给你的2个人的关系,已知他们是异性,要求你判断其中是否可能存在同性恋,

注意每个测试数据后面要求多加一个换行符。


代码:

#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn=20001;int n,m,p[maxn],r[maxn];int find(int x){    int ita=p[x];    if(p[x]==x)return x;    p[x]=find(p[x]);    r[x]=(r[x]+r[ita])%2;    return p[x];}int main(){    int T,cas=1;    scanf("%d",&T);    while(T--)    {scanf("%d%d",&n,&m);int flag=0;for(int i=0;i<=n;i++)    p[i]=i;memset(r,0,sizeof(r));for(int i=0;i<m;i++){    int ita,itb;    scanf("%d%d",&ita,&itb);    if(flag)continue;    int x=find(ita);    int y=find(itb);    if(x==y&&r[ita]==r[itb])    {flag=1;continue;    }    p[x]=y;    r[x]=(r[ita]+r[itb]+1)%2;}printf("Scenario #%d:\n",cas++);if(flag)    printf("Suspicious bugs found!\n");else    printf("No suspicious bugs found!\n");printf("\n");    }    return 0;}


原创粉丝点击