您的位置:首页 > Web前端

POJ2492---A Bug's Life(做完食物链,再秒这个)

2017-11-19 18:02 197 查看
和食物链那个是一种类型的,直接代码。

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int s[4100];

int Find(int x)
{
if (s[x] < 0)return x;
else return s[x] = Find(s[x]);//路径压缩
}

void unite(int x, int y)
{
int rootx = Find(x);
int rooty = Find(y);
if(rootx==rooty)return;
if (s[rootx] < s[rooty])
{
s[rootx] += s[rooty];
s[rooty] = rootx;
}
else
{
s[rooty] += s[rootx];
s[rootx] = rooty;
}

}

bool same(int x, int y)
{
return Find(x) == Find(y);
}
int main()
{
int N; cin >> N;
for(int i=1;i<=N;i++)
{
int flag = 1;
int bugs, inter;
cin >> bugs >> inter;//就是不改,还不用scanf。
fill(s + 1, s + 1 + 2*bugs, -1);
while (inter--)
{
int x, y;
cin >> x >> y;
if (same(x, y))
flag = 0;
else
{
unite(x, y + bugs);
unite(x + bugs, y);
}

}
printf("Scenario #%d:\n", i);
if (!flag) puts("Suspicious bugs found!");
else puts("No suspicious bugs found!");
puts("");
}
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: