codevs 2102 石子歸併2

2022-02-13 10:06:25 字數 1069 閱讀 5700

時間限制: 10 s

空間限制: 256000 kb

題目等級 : ** gold

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

試設計出1個演算法,計算出將n堆石子合併成1堆的最小得分和最大得分.

輸入描述 input description

資料的第1行試正整數n,1≤n≤100,表示有n堆石子.第2行有n個數,分別表示每堆石子的個數.

輸出描述 output description

輸出共2行,第1行為最小得分,第2行為最大得分.

樣例輸入 sample input

44 4 5 9

樣例輸出 sample output

4354

資料範圍及提示 data size & hint

經典的區間動態規劃。

【題目大意】石子歸併不是鏈型而是環形。

【思路】斷環成鏈。把石子再複製一條。『

如:2 1 5 3 7 再複製一條接上,2 1 5 3 7 2 1 5 3 7,

那麼從 2 1 5 3 7 2 1 5 3 7任意取長度為5的鏈進行石子歸併即可。

【code】

#include#include

using

namespace

std;

int w[201],sum[201],f[201][201],g[201][201

];int n,ans_max=-0x3ffff,ans_min=0x3ffff

;int

main()

for(int i=1;i<=n*2;i++)

sum[i]=sum[i-1]+w[i];

for(int i=2; i<=n*n; i++)

for(int j=i-1; j>=1&&i-j)

}for(int i=1; i<=n; i++)

printf(

"%d\n%d

",ans_min,ans_max);

return0;

}

CodeVs 2102 石子歸併 2

go to the problem 時間限制 10 s 話說為什麼是10s好可怕qaq 空間限制 256000 kb 題目等級 gold 在乙個園形操場的四周擺放n堆石子,現要將石子有次序地合併成一堆.規定每次只能選相鄰的2堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。試設計出1個演算...

Codevs 2102 石子歸併2

時間限制 10 s 空間限制 256000 kb 題目等級 gold 在乙個園形操場的四周擺放n堆石子,現要將石子有次序地合併成一堆.規定每次只能選相鄰的2堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。試設計出1個演算法,計算出將n堆石子合併成1堆的最小得分和最大得分.輸入描述 inp...

Codevs2102 石子歸併 2 區間DP

題目描述 description 在乙個園形操場的四周擺放n堆石子,現要將石子有次序地合併成一堆.規定每次只能選相鄰的2堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。試設計出1個演算法,計算出將n堆石子合併成1堆的最小得分和最大得分.輸入描述 input description 資料的...