犯罪團夥(並查集)學習總結

2022-03-06 18:34:38 字數 599 閱讀 1856

//

警察抓到了n個罪犯,警察根據經驗知道他們屬於不同的犯罪團夥,卻不能判斷有多少個團夥,

//但通過警察的審訊,知道其中的一些罪犯之間相互認識,已知同一犯罪團夥的成員之間直接或間接認識。

//有可能乙個犯罪團夥只有乙個人。請你根據已知罪犯之間的關係,確定犯罪團夥的數量。已知罪犯的編號從1至n。

//輸入:

//第一行:n(<=10000,罪犯數量),

//第二行:m(<=100000,關係數量)

//以下m行:每行兩個數:i 和j,中間乙個空格隔開,表示罪犯i和罪犯j相互認識。

//輸出:乙個整數,犯罪團夥的數量。

#include using

namespace

std;

const

int maxn = 100001

;int father[maxn] = ;

int find(int

i) int

main()

int ans = 0

;

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

cout

<< ans <}

團夥 並查集 團夥 並查集

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

團夥 並查集 並查集 團夥

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

團夥 並查集

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