區間型別動規 乘積最大

2021-09-25 05:20:36 字數 898 閱讀 9828

【訓練題】乘積最大

description

今年是國際數學聯盟確定的「2000――世界數學年」,又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目:

設有乙個長度n的數字串,要求選手使用k個乘號將它分成k+1個部分,找出一種分法,使得這k+1個部分的乘積能夠為最大。

同時,為了幫助選手能夠正確理解題意,主持人還舉了乙個例子:有乙個數字串: 312,當n=3,k=1時會有以下兩種分法:

1)3*12=36

2)31*2=62

這時,符合題目要求的結果是: 31*2=62

現在,請你幫助你的好朋友xz設計乙個程式,求得正確的答案。

input

第一行共有2個自然數:n,k 。  第二行是乙個長度為 n 的數字串。

output

輸出所求得的最大乘積(乙個自然數)。

sample input 1

4 21231

sample output 1

62hint

6<=n<=10  1<=k<=6

#includeusing namespace std;

int a[15][15];

long long f[15][15]; //前i個數中插入j個乘號的最大值

int main()

for(int i=1;i} for(int i=1;i<=n;i++) f[i][0]=a[1][i];

for(int l=1;l<=k;l++)

} }printf("%lld",f[n][k]);

return 0;

}

區間型別動規 能量項鍊

能量項鍊 description 在mars星球上,每個mars人都隨身佩帶著一串能量項鍊。在項鍊上有n顆能量珠。能量珠是一顆有頭標記與尾標記的珠子,這些標記對應著某個正整數。並且,對於相鄰的兩顆珠子,前一顆珠子的尾標記一定等於後一顆珠子的頭標記。因為只有這樣,通過吸盤 吸盤是mars人吸收能量的一...

石子合併(區間型動規)

在乙個圓形操場的四周擺放n堆石子 n 500 現要將石子有次序地合併成一堆。規定每次只能選相鄰的兩堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。編一程式,由檔案讀入堆數n及每堆的石子數 選擇一種合併石子的方案,使得做n 1次合併,得分的總和最小 選擇一種合併石子的方案,使得做n 1次合...

矩陣連乘問題 區間動規

解答想法 共兩行第一行n 1 n 100 代表矩陣個數。第二行有n 1個數,分別為q 0 q 1 q n 1 q k 2000 代表第 k 個矩陣是q k 1 xq k 維的。共兩行第一行 m,為最優代價。注 測試用例中 m 值保證小於 2 31 第二行為最優順序。如 a1 a2a3 a4 最外層也...