Poj2492 帶權並查集

2021-09-08 05:21:41 字數 886 閱讀 9688

題目鏈結在這裡

題目大意

bug分公母,有n個bug,m個描述,每個描述裡有x和y,代表這兩個bug是一對。問給出m個描述之後會不會有同性戀現象。

解題思路

每個bug的權值初始時設定成0,權值代表著這個bug和其祖宗的性別差異,如果是1就表示是異性,0代表同性。然後在合併的時候,如果發現它們之前已經合併過了並且它們的權值相加為偶數,則就是同性戀。

**如下

#include #include #include #include #include #define rep(i, n) for(int i = 0; i < n; ++i)

#define clr(x) memset(x, 0, sizeof(x))

using namespace std;

const int maxn = 2010;

int n, m;

int par[maxn], rank[maxn];

int t;

void init()

}int find(int x)

bool unite(int x, int y)

par[fx] = fy;

rank[fx] = (1 + rank[y] - rank[x]) % 2;

return true;

}int main();

rep(tt, t)

cout << "scenario #" << tt + 1 << ":" << endl;

cout << co[flag] << endl << endl;

}return 0;

}

poj2492 種類並查集 各種解法

題意 有t組測試資料,對於每組資料,第一行n,m分別表示昆蟲的數目和接下來m行x,y,x,y表示教授判斷x,y為異性,問教授是否有錯誤判斷,即存在x,y為同性 這道題和poj1703類似,不過更簡單一點 poj1703題解 解法1 我們可以用rank x 記錄x與其父親節點的關係,rank x 0表...

並查集,帶權並查集

題意 ignatius過生日,客人來到,他想知道他需要準備多少張桌子。然而一張桌子上面只能坐上相互熟悉的人,其中熟悉可定義成為a與b認識,b與c認識,我們就說a,b,c相互熟悉 例如a與b熟悉and b與c熟悉,d與e熟悉,此時至少需要兩張桌子。輸入 t表示樣例個數,n表示朋友個數,朋友從1到n編號...

poj 1182 帶權並查集

description 動物王國中有三類動物a,b,c,這三類動物的食物鏈構成了有趣的環形。a吃b,b吃c,c吃a。現有n個動物,以1 n編號。每個動物都是a,b,c中的一種,但是我們並不知道它到底是哪一種。有人用兩種說法對這n個動物所構成的食物鏈關係進行描述 第一種說法是 1 x y 表示x和y是...