poj1258 最小生成樹

2021-09-10 02:43:08 字數 662 閱讀 8409

題目鏈結在這裡

題目描述:

john要給村民通寬頻!他現在已經有了乙個高速網路了,現在想將村民相互連線起來。現給出村民之間的距離,求將他們連線起來的最小花費為多少。

思路分析:

最小生成樹,盤它就完事了。

**如下:

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

const int maxn = 110;

struct edge

};int n;

int par[maxn], r[maxn];

void init()

int find(int x)

void unite(int x, int y)

}bool check(int x, int y)

int main());}}

}int ans = 0;

while(--n)

ans += e.val;

unite(e.x, e.y);

}printf("%d\n", ans);

}return 0;

}

POJ 1258 最小生成樹

include include struct fiberfiber 10000 struct farmsfarms 100 void exchange struct fiber fiber,int i,int j int partition struct fiber fiber,int p,int ...

最小生成樹模板 POJ 1258

最小生成樹是乙個比較簡單資料結構,形成最小生成樹的方式有兩種。最小生成樹是有圖生成樹,保證樹的每條邊的權值之和最小的生成樹就叫做最小生成樹,這一類的題目起初比較基礎,主要是熟悉模板,poj 1258 也就是這樣的題目,非常適合剛剛學習的人。兩種方法的思路分別是找邊和找點,簡單點說就是,找到全集中最小...

POJ 1258 最小生成樹 Prim

乙個有n個節點的連通圖的生成樹是原圖的極小連通子圖,且包含原圖中的所有n個結點,並且有保持圖連通的最少的邊。最小生成樹可以用kruskal演算法或者prim演算法求出。kruskal演算法的過程為不斷對子圖進行合併,直到形成最終的最小生成樹。prim演算法的過程則是只存在乙個子圖,不斷選擇頂點加入到...