DP 維修柵欄

2021-09-24 04:59:49 字數 837 閱讀 3035

農場的柵欄年久失修,出現了多處破損,晶晶準備維修它,柵欄是由n塊木板組成的,每塊木板可能已經損壞也可能沒有損壞。晶晶知道,維修連續m個木板(這m個木板不一定都是損壞的)的費用是sqrt(m)。可是,怎樣設計方案才能使總費用最低呢?請你寫程式幫忙計算。

第一行包含乙個整數n(n<=2500),表示柵欄的長度。

第二行包含n個由空格分開的整數(-1000~1000),如果第i個數是0,則表示第i塊木板已經損壞,否則表示沒損壞。

乙個實數,表示最小維修費用。

注意:答案精確到小數點後3位。

9

0 -1 0 1 2 3 0 -2 0

3.000

f [i

]=mi

n(f[

i],f

[j]+

sqrt

(m))

;f[i]=min(f[i],f[j]+sqrt(m));

f[i]=m

in(f

[i],

f[j]

+sqr

t(m)

);

#include

#include

#define lb long double

int n,a[

100000];

lb f[

1000001];

lb min

(lb x,lb y)

//最小值

intmain()

}printf

("%.3lf"

,f[n]);

}

DP 維修柵欄

農場的柵欄年久失修,出現了多處破損,晶晶準備維修它,柵欄是由n塊木板組成的,每塊木板可能已經損壞也可能沒有損壞。晶晶知道,維修連續m個木板 這m個木板不一定都是損壞的 的費用是sqrt m 可是,怎樣設計方案才能使總費用最低呢?請你寫程式幫忙計算。第一行包含乙個整數n n 2500 表示柵欄的長度。...

UPC 維修柵欄(基本狀態轉移)

這個題的基本狀態是當前這塊木頭需要不需要維修,第二狀態是要以怎麼樣的形式 連續多少塊 維修,一一枚舉取最大值即可。值得一說的是,除了0狀態 起始狀態 其餘都要初始化為最大值。而第二狀態的列舉需要從0開始,0代表現有的所有都全修,到i 1為止,i 1代表就修它自己 這個長度由i j確定 include...

2018寒假集訓 Day2 動態規劃 維修柵欄

維修柵欄 問題描述 小z最近當上了農場主!不過,還沒有來得及慶祝,一件棘手的問題就擺在了小z的面前。農場的柵欄,由於年久失修,出現了多處破損。柵欄是由n塊木板組成的,每塊木板可能已經損壞也可能沒有損壞。小z知道,維修連續m個木板 這m個木板不一定都是損壞的 的費用是sqrt m 可是,怎樣設計方案才...