時間限制: 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
經典的區間動態規劃。
列舉起點即可.
1 #include 2view codeusing
namespace
std;34
const
int maxn=100+5,inf=0x7fffffff;5
6int
n,ans1,ans2;
7int s[maxn<<1
],dp1[maxn][maxn],dp2[maxn][maxn];89
void
solve()20}
21 ans1=min(dp1[1
][n],ans1);
22 ans2=max(dp2[1
][n],ans2);23}
24 printf("
%d\n%d\n
",ans1,ans2);25}
26void
init()
32for(int i=n+1;i<=n*2;i++) s[i]=s[i-n]+s[n];33}
34int
main()
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 資料的...