#include //有的寫法用到了樹的深度,就是重新開乙個陣列ran[maxn];
//用來記錄每個樹的深度,合併的時候把深度較小的合併到較大的上邊,防止出現最極端的情況。
//但是用上路徑壓縮的話就不需要這個陣列,因為壓縮過後深度都是 2 ,隨意操作;
//壓縮就是把/* */裡面的 par[x] = 加上,不加上去的話只查詢,沒有壓縮;
//附上帶ran陣列的合併;
//如果用ran陣列,盡量不要用rank rank再後邊學習的時候是乙個關鍵字;
void unite() }
const int maxn = 1e6 + 10;
int par[maxn];
void init(int n)
//壓縮和不壓縮的都要知道,後邊有時會處理不壓縮的;
int find(int x)
*/ return par[x];
}void unite(int a, int b)
int main()
並查集模板
來自lifeng wang http hi.baidu.com fandywang jlu 前輩06年寫的東西,追隨前人足跡繼續努力。並查集的一些題目和相關解題報告 poj 1611 the suspects 最基礎的並查集 poj 2524 ubiquitous religions 最基本的並查集...
並查集模板
普通並查集 define max size 100005 int pa max size 儲存有向圖的邊 void init 初始化 該函式可以根據具體情況儲存和初始化需要的內容 int findset int a 不帶路勁壓縮 return a void union nodes int a,int...
並查集模板
codevs 2597 團夥 題目描述 description 1920年的芝加哥,出現了一群強盜。如果兩個強盜遇上了,那麼他們要麼是朋友,要麼是敵人。而且有一點是肯定的,就是 我朋友的朋友是我的朋友 我敵人的敵人也是我的朋友。兩個強盜是同一團夥的條件是當且僅當他們是朋友。現在給你一些關於強盜們的資...