Out of Hay最小生成樹

2021-10-02 08:12:27 字數 2382 閱讀 5760

out of hay

原題鏈結

題意為給出n個地點之間的m條路,計算鏈結到所以地點的最短的路中最長的一截的長度。相較於板子,增加一步判斷大小,選擇最大的一條路即可。

prim:

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

const

int inf =

0x3f3f3f3f

;long

long map[

3005][

3005];

long

long dis[

300005];

bool vis[

300005];

long

long ans;

long

long n;

long

long maxx;

void

prim()

vis[1]

=true

;for

(i =

0; i < n -

1; i++)}

// cout << "***" << endl;

// for (j = 1; j <= n; j++)

//

// cout << endl;

if(minn == inf)

ans +

= minn;

maxx =

max(maxx, minn)

;//選取我們選的路中最大的一條。

vis[p]

=true

;for

(j =

1; j <= n; j++)}

}return;}

intmain()

}while

(m--)if

(map[b]

[a]> w)

} maxx =-1

;prim()

; cout << maxx << endl;

return0;

}

kruskal:

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

long

long pre[

300005];

long

long map[

3005][

3005];

struct node

stu[

300005];

long

long ans;

long

long cnt;

long

long maxx;

bool

cmp(node x, node y)

long

long

find

(long

long x)

return pre[x]

=find

(pre[x]);

}void

join

(long

long x,

long

long y,

long

long w)

}int

main()

for(i =

0; i < m; i++

)sort

(stu, stu + m, cmp)

;/* for (i = 0; i < k; i++)

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

cout << endl;*/

maxx =-1

;for

(i =

0; i < m; i++)}

if(cnt >1)

cout << maxx << endl;

return0;

}

POJ 2395 Out of Hay 最小生成樹

usaco 2005 march silver 題目大意 有n 2 2000 個農場,m 1 10000 條通路連通各個農場,長度不超109,要求遍歷全部的農場,且每走1單位長度就要消耗一單位水,每到乙個農場可以把自己的水充滿,求最小的水箱容量。樣例輸入 3 3 1 2 23 2 3 1000 1 ...

POJ2395 Out of Hay 最小生成樹

題意 農場之間相互連線,要求輸出最小連通中最長的那條邊的權值 要點 又是一道模板題,poj上最小生成樹咋這麼多水題,要做點難的啊。15347115 seasonal 2395 accepted 292k 79ms c 892b 2016 04 03 13 07 56 include include ...

最小生成樹 次小生成樹

一 最小生成樹 說到生成樹首先要解釋一下樹,樹是乙個聯通的無向無環圖,多棵樹的集合則被稱為森林。因此,樹具有許多性質 1.兩點之間的路徑是唯一的。2.邊數等於點數減一。3.連線任意兩點都會生成乙個環。對於乙個無向聯通圖g的子圖,如果它包含g的所有點,則它被稱為g的生成樹,而各邊權和最小的生成樹則被稱...