#include <set>
#include <map>
#include <cmath>
#include <queue>
#include <stack>
#include <cstdio>
#include <string>
#include <vector>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf = 0x3f3f3f3f;
const double eps = 1e-8;
const int maxn = 2e3+10;
int pa[maxn],dif[maxn];
void init()
{
for (int i = 0; i < maxn; i++)
{
pa[i] = i;
}
memset(dif,-1,sizeof(dif));
}
int find(int x)
{
return pa[x] = (pa[x] == x ? x : find(pa[x]));
}
void union_set(int x,int y)
{
pa[find(x)] = find(y);
}
void vary(int x,int y)
{
if (dif[x]==-1)
dif[x] = y;
else
union_set(dif[x],y);
if (dif[y]==-1)
dif[y] = x;
else
union_set(x,dif[y]);
}
int main(void)
{
int t,n,m,cas = 1;
cin>>t;
while (t--)
{
init();
scanf("%d%d",&n,&m);
int u,v;
bool flag = 1;
for (int i = 0; i < m; i++)
{
scanf("%d%d",&u,&v);
if (find(u)==find(v))
flag = 0;
vary(u,v);
}
printf("Scenario #%d:\n",cas++);
if (flag)
printf("No suspicious bugs found!\n");
else
printf("Suspicious bugs found!\n");
printf("\n");//郁闷,题目哪里说要空行了,而且即使空行最后一组也不应该空行啊
}
return 0;
}
hdu1829——A Bug's Life 种类、带权并查集 裸题
最新推荐文章于 2020-02-23 18:51:16 发布