hdu 1233 最小生成樹kruskal

2021-06-29 14:19:35 字數 491 閱讀 5060

學完kruskal演算法,自己的理解就是也是乙個貪心的策略,記錄下每次的起點和終點,以及他們之間的權值,對邊的權值進行排序,每次找出權值比較小的邊,判斷他與之前所選擇的邊是否會形成迴路,如果不會的話就往生成樹中加入這一條邊,如果會就捨棄,如何判斷迴路,就需要用到並查集,找出起點和終點各自的根節點,如果不相同說明是在兩個不同的集合之中,(也就意味著不會產生迴路)這時候將兩個集合合併,並加上這一條邊的權值,如果相同就會有迴路產生。

附上**:

#include #include #include #include using namespace std;

#define m 110000

int u[m];

int v[m];

int w[m];

int p[m];

int r[m];

int n,m;

int ans;

int cmp(int i,int j)

{ return w[i]

HDU1233 還是暢通工程 最小生成樹

題意 求出連線各個村莊最小的公路總長度,把最小公路總長度求出來。思路 最小生成樹原理,帶入資料求得。prim include include using namespace std define inf 0x3f3f3f3f intmain visit 1 1 int pos 1 第一次給low賦值...

HDU1233 還是暢通工程(最小生成樹)

problem description 某省調查鄉村交通狀況,得到的統計表中列出了任意兩村莊間的距離。省 暢通工程 的目標是使全省任何兩個村莊間都可以實現公路交通 但不一定有直接的公路相連,只要能間接通過公路可達即可 並要求鋪設的公路總長度為最小。請計算最小的公路總長度。input 測試輸入包含若干...

hdu 1233還是暢通工程(最小生成樹 並查集)

這題主要是考察最小生成樹把,在順便在連通性上用到了並查集,我是用結構體來存圖,然後在把路徑長度排序,然後遍歷結構體,如果沒有連通,那麼通過並查集來連通,然後加上長度。include include include using namespace std struct haha struct haha...