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的生成樹,而各邊權和最小的生成樹則被稱...