#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int father[2001];
bool relative[2001];
int find_root(int c){
if(father[c]!=c){
int ori=father[c];
father[c]=find_root(father[c]);
relative[c]=(relative[c]+relative[ori])%2;
}
return father[c];
}
bool check(int a,int b){
int aa=find_root(a);
int bb=find_root(b);
if(aa==bb){
if(relative[a]==relative[b])
return 0;
else
return 1;
}
father[aa]=bb;
relative[aa]=(relative[a]+1+relative[b])%2;
return 1;
}
int main(){
int icase,cur=1;
int n,m;
int i,j;
int r1,r2;
bool flag;
scanf("%d",&icase);
while(cur<=icase){
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++){
father[i]=i;
relative[i]=0;
}
flag=1;
for(i=1;i<=m;i++){
scanf("%d%d",&r1,&r2);
if(!check(r1,r2))
flag=0;
}
printf("Scenario #%d:\n",cur);
if(!flag)
printf("Suspicious bugs found!\n\n");
else
printf("No suspicious bugs found!\n\n");
cur++;
}
return 0;
}
hdu1829 A Bug's Life
最新推荐文章于 2021-09-12 22:14:33 发布