題目鏈結在這裡
題目描述:
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演算法的過程則是只存在乙個子圖,不斷選擇頂點加入到...