洛谷 P1892 團夥

2022-03-07 00:58:23 字數 1145 閱讀 8032

洛谷 p1892 團夥

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

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

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

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

輸入格式:

輸入檔案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是敵人。輸入資料保證不會產生資訊的矛盾。

輸出格式:

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

輸入樣例#1: 複製

6

4e 1 4

f 3 5

f 4 6

e 1 2

輸出樣例#1: 複製

3

思路:並查集

難度:普及+/提高

//

可讀性應該比較高吧。。。

#include#include

#include

#include

using

namespace

std;

intn, m, tot;

int fa[1005], foe[1005], ff[1005

];//

fa記錄每個人的上一層,foe記錄每個人的敵人,ff記錄有多少人是根

char

c;int find(int x)

void merge(int u, int v)

intmain()

if(c == '

e')

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

int sum = 0

;

for(int i = 1; i <= maxn; i++) if(ff[i] != 0) sum++; //

計數 printf("%d"

, sum);

return0;

}

洛谷P1892 團夥

此題本人在洛谷上也著有題解,想看的朋友也可以去看 鏈結 假設敵人的敵人是朋友,朋友的朋友也是朋友。規定為朋友的兩個強盜為同一團夥,現給定n個強盜的m對關係 2 n 1000,1 m 5000 求共有幾個團夥?利用並查集,只需要普通的查詢合併操作就行了,沒有什麼難點。最後在掃瞄所有人,如果祖先是自己,...

洛谷1892 團夥

題目描述 1920年的芝加哥,出現了一群強盜。如果兩個強盜遇上了,那麼他們要麼是朋友,要麼是敵人。而且有一點是肯定的,就是 我朋友的朋友是我的朋友 我敵人的敵人也是我的朋友。兩個強盜是同一團夥的條件是當且僅當他們是朋友。現在給你一些關於強盜們的資訊,問你最多有多少個強盜團夥。輸入輸出格式 輸入格式 ...

團夥 洛谷P1892

題目描述 1920年的芝加哥,出現了一群強盜。如果兩個強盜遇上了,那麼他們要麼是朋友,要麼是敵人。而且有一點是肯定的,就是 我朋友的朋友是我的朋友 我敵人的敵人也是我的朋友。兩個強盜是同一團夥的條件是當且僅當他們是朋友。現在給你一些關於強盜們的資訊,問你最多有多少個強盜團夥。輸入輸出格式 輸入格式 ...