1. 程式人生 > >POJ2492---A Bug's Life(做完食物鏈,再秒這個)

POJ2492---A Bug's Life(做完食物鏈,再秒這個)

和食物鏈那個是一種型別的,直接程式碼。

#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"); }