並查集 團夥

2022-05-22 02:06:10 字數 496 閱讀 1223

題號:zhoj1258

思路:並查集。

給每個人建立乙個「正集」(朋友)、乙個「反集」(敵人),反集要麼為空、要麼指向乙個正集,維護這兩類集合,最後統計「正集」的個數。

1 #include2 #include3

const

int n=1000;4

intans;

5class

unionfindset 14}

15int find(int

x) 18

void union(int op,int x,int

y) 23

if(op==2

) 29}30

int count(int

n) 38

};39

intmain()

48 printf("

%d\n

",s.count(n));

49return0;

50 }

團夥 並查集 團夥 並查集

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

團夥 並查集 並查集 團夥

2 n 1000 1 m 5000 1 p q n 試題分析 這種問題我們一般有兩種解法 打標記 多個並查集 打標記這類方法會在銀河英雄傳說中看到 那麼多個並查集如何解決呢?我們設1 n節點是記錄朋友,n 1 2 n節點是記錄敵人 既然兩個人是朋友,根據題意,我們也要把他們的敵人合起來 如果兩個人是...

並查集 團夥(luogu 1892)

定義對手的對手是朋友,朋友的朋友是朋友,現在有n個人和m組關係,如果兩個人是朋友那麼他們屬於同乙個團夥,問有多少個團夥 1920年的芝加哥,出現了一群強盜。如果兩個強盜遇上了,那麼他們要麼是朋友,要麼是敵人。而且有一點是肯定的,就是 我朋友的朋友是我的朋友 我敵人的敵人也是我的朋友。兩個強盜是同一團...