hdu 1232解題報告 可供初步了解 回顧並查集

2021-06-17 00:07:30 字數 685 閱讀 7204

這是乙個簡單的並查集運用,每次案例開始,我們按照輸入的n城市個數初始化:

初始化過程為,1到n的父親節點為本身,1到n的rank深度為0,但是我們把rank[0]

作為要修建的道路數,初始化為n-1,比如我們初始化n為3的情況,rank[0]=2,一開始只要

修建兩條路.....然後就是按照m輸入m組聯通城市,每次就和並一次,合併最後,我們就把

rank[0]減一,因為合併了兩個城市之後,道路就少了一條。

基於這個題目,推薦乙個一樣的題目,就是poj2524 宗教的個數

這個鏈結是關於並查集的學習,我是乙個小白,開始就是看了這裡

下面是**

#includeint father[1005];//記錄父親節點

int rank[1005];//記錄次節點的深度

void init(int n)

rank[0]=n-1;

}int find(int x)

void union(int x,int y)

if(rank[x] == rank[y])

rank[y]++;

rank[0]--;//合併了一次,道路數就減一

}int main()

printf("%d\n",rank[0]);

} return 0;

}

Hdu1232暢通工程 解題報告

並查集 將編號分別為1到n的n個物件劃分為不相交集合,在每個集合中,選擇其中某個元素代表所在集合。主要有兩個操作 1 合併兩個集合,2 查詢某元素屬於哪個集合。下面是利用並查集求解hdu 1232 暢通工程 比用dfs,bfs搜尋大大提高了時間效率。include include using nam...

hdu1232 暢通工程

還是並查集,不過我覺得最後判斷最少路徑自己處理的麻煩了,得去看看大神 code id yueqiq prog numtri lang c include include include include include include include include include include i...

HDU 1232 暢通工程

題目大意 中文題 解題思路 最基礎的並查集,注意一點,雖然路徑優化了,但pre i 不一定就是最上級,所以最後查詢還得用find函式。該部落格詳盡的多 ac include include using namespace std int n,m,t1,t2,pre 1005 setse intfin...