Codevs 2102 石子歸併2

2022-08-17 09:12:18 字數 1068 閱讀 8225

時間限制: 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 2

using

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()

view code

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 資料的...