並查集的使用(1)

2021-08-08 15:50:43 字數 513 閱讀 1095

題目**:暢通工程

題目分析:抽象成在乙個圖查詢連通分量(彼此相連的節點的集合)的個數,求出個數之後-1,就是我們需要的答案。

#includeusing namespace std;

int parent[1001];

int findroot1(int x)

int findroot2(int x)

int findroot(int x)

int findroot3(int x)

return ret;

}void merge(int a, int b)/*合併a和b*/

}int main()

while (m--)

int ans = 0;

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

cout << ans - 1 << endl;

} return 0;

}

初學並查集 並查集1

現在,我是用乙個初學者的眼光來寫並查集,此文最初寫於我學並查集的那天,後經過多次修改。1 並查集是什麼 並查集是乙個具有多個連通分支的圖,他擁有合併兩個連通分支,和查詢兩個元素是否位於同乙個連通分支的功能。2 並查集的簡單應用 並查集解決什麼問題 假如有一些點,你知道哪些點是直接相連的,但實際上間接...

並查集 並查集

本文參考了 挑戰程式設計競賽 和jennica的github題解 陣列版 int parent max n int rank max n void init int n int find int x else void union int x,int y else 結構體版 struct node ...

並查集初學(1)

出處 github 並查集 union find sets 是一種非常精巧而實用的資料結構,它主要用於處理一些不相交集合的合併問題。一些常見的用途有求連通子圖 求最小生成樹的 kruskal 演算法和求最近公共祖先 least common ancestors,lca 等。使用並查集時,首先會存在一...