POJ 2492 A Bug's Life(關係並查集)
題意就是找出蟲子之間是否有同性戀。。。。這個蟲子真的很趕潮流啊,竟然也搞基、、、
跟1703一樣的關係並查集。
A Bug's Life
Time Limit: 10000MS | Memory Limit: 65536K | |
Total Submissions: 26105 | Accepted: 8513 |
Description
Background
Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only interact with bugs of the opposite gender. In his experiment, individual bugs and their interactions were easy to identify, because numbers were printed on their backs.
Problem
Given a list of bug interactions, decide whether the experiment supports his assumption of two genders with no homosexual bugs or if it contains some bug interactions that falsify it.
Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only interact with bugs of the opposite gender. In his experiment, individual bugs and their interactions were easy to identify, because numbers were printed on their backs.
Problem
Given a list of bug interactions, decide whether the experiment supports his assumption of two genders with no homosexual bugs or if it contains some bug interactions that falsify it.
Input
The first line of the input contains the number of scenarios. Each scenario starts with one line giving the number of bugs (at least one, and up to 2000) and the number of interactions (up to 1000000) separated by a single space. In the following lines, each
interaction is given in the form of two distinct bug numbers separated by a single space. Bugs are numbered consecutively starting from one.
Output
The output for every scenario is a line containing "Scenario #i:", where i is the number of the scenario starting at 1, followed by one line saying either "No suspicious bugs found!" if the experiment is consistent with his assumption about the bugs' sexual
behavior, or "Suspicious bugs found!" if Professor Hopper's assumption is definitely wrong.
Sample Input
2 3 3 1 2 2 3 1 3 4 2 1 2 3 4
Sample Output
Scenario #1: Suspicious bugs found! Scenario #2: No suspicious bugs found!
#include <algorithm>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <iomanip>
#include <stdio.h>
#include <string>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
#include <set>
#define eps 1e-7
#define M 10001000
#define LL __int64
//#define LL long long
#define INF 0x3f3f3f3f
#define PI 3.1415926535898
const int maxn = 101000;
using namespace std;
int f[maxn];
int w[maxn];
int r;
int _find(int x)
{
int t = x;
r = 0;
while(x != f[x])
{
if(w[x])
{
if(r == 1)
r = 0;
else
r = 1;
}
x = f[x];
}
f[t] = x;
w[t] = r;
return x;
}
int main()
{
int t;
cin >>t;
int n, m;
for(int k = 1; k <= t; k++)
{
scanf("%d %d",&n,&m);
for(int i = 0; i <= n; i++)
{
f[i] = i;
w[i] = 0;
}
int flat = 0;
while(m--)
{
int x, y;
scanf("%d %d",&x, &y);
int xx = _find(x);
int r1 = r;
int yy = _find(y);
int r2 = r;
if(xx == yy)
{
if(r1 == r2)
{
flat = 1;
continue;
}
}
else
{
f[xx] = yy;
if(r1 == r2)
w[xx] = 1;
else
w[xx] = 0;
}
}
printf("Scenario #%d:\n", k);
if(flat)
printf("Suspicious bugs found!\n");
else
printf("No suspicious bugs found!\n");
puts("");
}
return 0;
}
相關文章
- POJ 2492-A Bug's Life(帶權並查集)並查集
- POJ 2492 A bug's life【擴充套件域 | 邊帶權並查集】套件並查集
- POJ2492(種類並查集)並查集
- POJ 1703 Find them, Catch them (關係並查集)並查集
- POJ 1308-Is It A Tree?(並查集)並查集
- 【POJ 1182】食物鏈(並查集)並查集
- POJ1797 Heavy Transportation【並查集+貪心】並查集
- POJ 1703-Find them, Catch them(並查集)並查集
- POJ 1733 Parity【擴充套件域並查集】套件並查集
- POJ2253 Frogger【並查集+貪心】並查集
- POJ 2236-Wireless Network(並查集)並查集
- POJ 2524-Ubiquitous Religions(入門並查集)UI並查集
- poj 1182 並查集經典問題並查集
- POJ-1182-食物鏈(並查集種類)並查集
- POJ 1611-The Suspects(並查集-同一集合)並查集
- 關於並查集問題並查集
- 並查集到帶權並查集並查集
- POJ 1182(食物鏈-另類做法【拆點】)[Template:並查集]並查集
- 【並查集】【帶偏移的並查集】食物鏈並查集
- POJ 1182 食物鏈【擴充套件域 | 邊帶權並查集】套件並查集
- POJ 2513-Colored Sticks(連線木棍-trie樹+並查集+尤拉通路)並查集
- It's my life
- It s my life
- 並查集(一)並查集的幾種實現並查集
- 並查集(小白)並查集
- 3.1並查集並查集
- 關押罪犯 擴充套件域並查集 帶權並查集 二分圖+二分套件並查集
- 並查集(Union Find)並查集
- 並查集應用並查集
- The Door Problem 並查集並查集
- 並查集練習並查集
- 並查集的使用並查集
- 並查集—應用並查集
- 寫模板, 並查集。並查集
- 並查集跳躍並查集
- 各種並查集並查集
- 並查集(二)並查集的演算法應用案例上並查集演算法
- 電影《It's a wonderful life》