JZOJ 最小生成樹 給水

2021-09-25 02:00:06 字數 1483 閱讀 9513

由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個點中所有點的連線,因為題目要求的是最小長度,所以只有與這個點高度最相近...