【訓練題】乘積最大
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 最外層也...