石子合併 四邊形優化

2021-08-01 08:34:59 字數 853 閱讀 8428

description

在乙個操場上擺放著一排n堆石子。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2堆石子合併成新的一堆,並將新的一堆石子數記為該次合併的得分。

試設計乙個演算法,計算出將n堆石子合併成一堆的最小得分。

input

第一行是乙個數n。

以下n行每行乙個數a,表示石子數目。

output

共乙個數,即n堆石子合併成一堆的最小得分。

sample input

4 1

1 1

1sample output

8

#include

#include

using

namespace

std;

const

int inf=2100000000;

const

int maxn=1001;

int temp,n,best,sum[maxn],s[maxn][maxn],dp[maxn][maxn];

inline

const

int read()

while(ch>='0'&&ch<='9')

return x*f;

}void reset()

int main()

for(register

int i=n;i>=1;i--)

for(register

int j=i+1;j<=n;j++)

s[i][j]=best;

dp[i][j]=temp;

}printf("%d",dp[1][n]);

}

石子合併 四邊形優化

動態規劃的經典題目,在遇到狀態轉移方程像min w i k w k 1 j m i j 的時候就可以使用考慮使用四邊形優化。在i i j j 的條件滿足的情況下,有w i j w i j w i j w i j 那麼就可以使用s i j 同時s i j 又有單調遞增性 並沒有仔細看 以後有時間一定補...

石子合併 四邊形不等式優化

藍橋杯 演算法提高 石子合併 很明顯的區間dp,d i,j 表示取第i堆到第j堆石子最少花費,轉移方程d i,j min d i,k d k 1,j sum j sum i 四邊形a b c d,有w b,c w a,d 滿足決策單調性 且w a,c w b,d w b,c w a,d 滿足四邊形不...

合併石子 四邊形不等式優化

有一排石子,共n 堆。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2 堆石子合併成新的一堆,並將新的一堆石子數記為該次合併的得分。試設計乙個演算法,計算出將n堆石子合併成一堆的最小得分。首先由直接動態規劃的方法來做,即 for int i 1 i n i for int j i j n j f...