Codevs 2597 團夥 並查集

2021-07-15 14:26:02 字數 1352 閱讀 9543

2597 團夥

時間限制: 1 s

空間限制: 128000 kb

題目等級 :** gold

傳送門題目描述 description

2023年的芝加哥,出現了一群強盜。如果兩個強盜遇上了,那麼他們要麼是朋友,要麼是敵人。而且有一點是肯定的,就是:

我朋友的朋友是我的朋友;

我敵人的敵人也是我的朋友。

兩個強盜是同一團夥的條件是當且僅當他們是朋友。現在給你一些關於強盜們的資訊,問你最多有多少個強盜團夥。

輸入描述 input description

輸入檔案gangs.in的第一行是乙個整數n(2<=n<=1000),表示強盜的個數(從1編號到n)。 第二行m(1<=m<=5000),表示關於強盜的資訊條數。 以下m行,每行可能是f p q或是e p q(1<=p q<=n),f表示p和q是朋友,e表示p和q是敵人。輸入資料保證不會產生資訊的矛盾。

輸出描述 output description

輸出檔案gangs.out只有一行,表示最大可能的團夥數。

樣例輸入 sample input

6 4

e 1 4

f 3 5

f 4 6

e 1 2

樣例輸出 sample output

3 資料範圍及提示 data size & hint

2<=n<=1000

1<=m<=5000

1<=p q<=n

分類標籤 tags

並查集 樹結構

/*

並查集.

朋友直接建立關係.

敵人間接建立關係(關係是雙向的).

一開始用n^2查詢然後其實o(n)完全闊以.

(關押罪犯類似).

*/#include

#include

#define maxn 1001*20

using

namespace

std;

int father[maxn],n,m,tot;

bool b[maxn];

int read()

while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();

return x*f;

}int find(int x)

int main()

for(int i=1;i<=n;i++)

printf("%d",tot);

return

0;}

CodeVS 2597 團夥(並查集)

題目 codevs 2597 題目 時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解 1920年的芝加哥,出現了一群強盜。如果兩個強盜遇上了,那麼他們要麼是朋友,要麼是敵人。而且有一點是肯定的,就是 我朋友的朋友是我的朋友 我敵人的敵人也是我的朋友。兩個強盜是同一團夥的條件是...

Codevs 2597 團夥 並查集

2597 團夥 時間限制 1 s 空間限制 128000 kb 題目等級 gold 傳送門題目描述 description 1920年的芝加哥,出現了一群強盜。如果兩個強盜遇上了,那麼他們要麼是朋友,要麼是敵人。而且有一點是肯定的,就是 我朋友的朋友是我的朋友 我敵人的敵人也是我的朋友。兩個強盜是同...

並查集 1385 團夥 group

題目描述 在某城市裡住著n個人,任何兩個認識的人不是朋友就是敵人,而且滿足 1 我朋友的朋友是我的朋友 2 我敵人的敵人是我的朋友 所有是朋友的人組成乙個團夥。告訴你關於這n個人的m條資訊,即某兩個人是朋友,或者某兩個人是敵人,請你編寫乙個程式,計算出這個城市最多可能有多少個團夥?輸入 第1行為n和...