这是一个bug群,在poj上它们叫2492,在hdu它们叫1829。呵~
尝试用偏移向量来做,结果连样例都不过,无奈只好又回到老本行分组来做。等偏移向量用熟了再重做吧
#include<cstdio>
const int N=2005;
int p[2*N];
int find(int x)
{
return x==p[x]?x:p[x]=find(p[x]);
}
int main()
{
//freopen("int.txt","r",stdin);
int T,cas=0;
scanf("%d",&T);
while(cas!=T){
int n,K;
scanf("%d%d",&n,&K);
for(int i=1;i<=2*n;i++)p[i]=i;
bool flag=true;
while(K--){
int a,b;
scanf("%d%d",&a,&b);
if(flag){
int x1=find(a),y1=find(a+n);
int x2=find(b),y2=find(b+n);
if(x1==x2){
flag=false;
}
else {
p[y1]=x2;
p[y2]=x1;
}
}
}
printf("Scenario #%d:\n",++cas);
if(flag)printf("No suspicious bugs found!\n\n");
else printf("Suspicious bugs found!\n\n");
}
return 0;
}