由n塊草地組成了乙個花園
現在要你給這個花園裡的所有草地供水
你可以在第i
ii塊草地挖井,費用為a[i
]a[i]
a[i]
也可以從其他草地連線水管過來
但前提是那個草地要有水,費用為f[i
][j]
f[i][j]
f[i][j
]現在要你求給所有草地供水
最少需要多少大洋
第一行,乙個n
nn第2
22~n+1
n+1n+
1行,每行乙個a[i
]a[i]
a[i]
第n +2
n+2n+
2~2n+1
2n+1
2n+1
行,每行n
nn個數,代表f[i
][j]
f[i][j]
f[i][j
]一行,為最小費用
s am
plei
nput
sample input
sample
inpu
t
454
430 2 2 2
2 0 3 3
2 3 0 4
2 3 4 0
s am
pleo
utpu
tsample output
sample
outp
ut
9
最小生成樹
#include
#include
#include
#include
using
namespace std;
int a[
550]
,f[550
],k[
550]
,l[550][
550]
;int ans,n,t;
intmain()
for(
int i=
1;i<=n;
++i)
for(
int j=
1;j<=n;
++j)
scanf
("%d"
,&l[i]
[j])
;memset
(f,0x3f
,sizeof
(f))
; f[1]
=0;//現鑿乙個井
for(
int i=
1;i<=t;
++i)
printf
("%d"
,ans)
;fclose
(stdin);
fclose
(stdout);
return0;
}
最小生成樹prim 給水
所以到底讀 給予 的 給 還是平時用的 給 fj決定給n 1 n 300 個草地給水,草地編號為1到n。他可以在該草地處建立一口井,也可以建立管道從別的草地引水進來,在第i塊草地處挖一口井需要花費w i 1 w i 100,000 連線井i和井j的管道需要花費p ij 1 p ij 100,000,...
JZOJ 1244 修建道路 最小生成樹
傳送門 給出n nn個點和已經建好的m mm條邊,求我們需要修建的最小代價使得n nn個點可以互相到達 正常最小生成樹隨便跑,對於已經修好的邊就直接在開始就放在乙個塊裡 include include include include include include include include d...
JZOJ 1405 電纜建設 最小生成樹
傳送門 一共有n m n mn m個點,我們需要在連線長度最小的情況下使得所有點相連通 最顯然的方式肯定跑最小生成樹 但這樣的時間複雜度肯定是承擔不起的,所以我們要想點方法使得演算法更加優秀 考慮n nn個點中的乙個點與m mm個點中所有點的連線,因為題目要求的是最小長度,所以只有與這個點高度最相近...