並查集最優灌溉問題解決

2021-12-29 21:33:31 字數 693 閱讀 3619

1.什麼是並查集

是一種資料結構,其實也就是一種樹結構

把i節點的父節點儲存在array[i]陣列裡,根節點的父節點為自身。

對於這種資料結構可以實現的功能有兩個

(1)查詢乙個節點的根節點,通過陣列裡儲存的父節點一層一層向上查詢,知道找到乙個節點的父節點是自己,那這個節點就是根節點了。

(2)判斷兩個節點是否屬於乙個樹,找到這兩個節點的根節點進行比較,如果根節點相同,這兩個節點就屬於乙個樹,如果不相同,就不屬於乙個樹。

(3)把兩個樹合併,在功能(2)中如果判斷出兩個節點不屬於乙個樹,想要把這兩個樹合併,就把其中乙個節點的根節點的父節點從自身變更為另乙個節點的根節點,就可以實現兩個樹的合併,即並集。

2.最優灌溉問題

本質都一樣,求最小生成樹

3.**實現

# include

# include

using namespace std;

struct vex //水渠結構體陣列

;int node[100]; //並查集的節點陣列,值代表當前節點的父節點

bool comp(vex a,vex b) //自定義比較函式

{ return a.a這裡面用到了sort函式,是algorithm庫里自帶的乙個排序函式。

node問題解決集

1 db.collection is not a function?當遇到這個錯誤的時候,反應過來應該是版本問題,因為在mongodb3.0版本以後,資料庫名從connect移除。而mongoose用的是2.2.33版本的mongodb,所以不存在這個問題,而解決方案有 1.1 降級到2.2的版本 ...

團夥 並查集 題解 並查集 搜尋

1 1270海戰 題目描述 在這個著名的遊戲中,在乙個方形的盤上放置了固定數量和形狀的船隻,每只船卻不能碰到其它的船。在這個題中,我們僅考慮船是方形的,所有的船隻都是由圖形組成的方形。編寫程式求出該棋盤上放置的船隻的總數。輸入輸入檔案頭一行由用空格隔開的兩個整數r和c組成,1 r,c 1000,這兩...

linux 問題解決(錦集)

這裡收錄了我在使用ubuntu 時遇到的問題以及解決方案。1.ubuntu上由於 boot容量不足引起的無法更新系統 解決 link1 link2 2.在未聯網的情況下,sudo 執行速度慢,同時顯示 無法解析主機 hostname 連線超時 解決 我的情況是 我在 桌面右上角關機鍵 關於這台計算機...