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 ...