最小生成樹2道模板題

2021-08-15 07:56:20 字數 734 閱讀 3337

poj2485

題目大意:有幾個小島,現要修路將其連線起來,求最長路的最小值。

題目分析:求生成樹的最大邊最小值。。。其實也是最小生成樹的最大邊,可用kruskal每次將最小邊加進來,最後一條邊就是最大邊

#include#include#includeusing namespace std;

int a[510][510],k,p[510];

int f(int x)

struct q;

q b[300000];

bool cmp(q a,q b)

}k=0;

for(i=1;i<=n;i++)

}sort(b+1,b+k+1,cmp);

int m=krus();

printf("%d\n",m);

}return 0;

}

hdoj3371

題目大意:有n個小島,兩個小島間有的有路,有的沒有,現要從m條可選的路中選擇,將所有小島都連線起來,求建路最小花費

思路分析:由於有的點間已經有路,可用並查集將它們並在一起,再對這m條可用邊,依次從小到**擇判斷邊上的兩點是否已在乙個集合中

#include#include#includeusing namespace std;

int p[1000],m;

struct qa[300000];

bool cmp(q a,q b){ return a.v

曼哈頓最小生成樹 模板題

曼哈頓最小生成樹 給定二維平面上的n個點,在兩點之間連邊的代價為其曼哈頓距離,求使所有點連通的最小代價。樸素的演算法可以用o n2 的prim,或者處理出所有邊做kruskal,但在這裡總邊數有o n2 條,所以kruskal的複雜度變成了o n2logn 結論 以乙個點為原點建立直角座標系,在每4...

最小生成樹模板

prim演算法理解可以參考部落格 prim演算法模板 int prime int v int i,j,sum 0,min,k sum是權重和 for i 1 i n i lowcost i 表明當前狀態下在u內距離v點 s中各點 距離的最小值,每個u中點s 中點 都計算 lowcost i map ...

最小生成樹 模板

const int maxn 1010 const int maxm 200020 struct edge edges maxm int father maxn int find int x int cmp edge a,edge b 將邊按權值排序 int kruskal int n,int m ...