時間限制: 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#includeusing
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 資料的...