DFS BFS 最大乘積

2021-07-11 02:44:07 字數 1070 閱讀 7264

今年是國際數學聯盟確定的「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 format    

程式的輸入共有兩行:

第一行共有2個自然數n,k (6<=n<=40,0<=k<=5)

第二行是乙個k度為n的數字串。

輸出格式 output format   

結果輸出到檔案,相對於輸入,應輸出所求得的最大乘積(乙個自然數)。

樣例輸入 sample input

4 2

樣例輸出 sample output   

62時間限制 time limitation

各個測試點1s

#include

#include

#include

using

namespace

std;

int n,k;

int mul[41][41],dp[41][8];

char a[42];

int main()

}for(int i=1;i<=n;i++) dp[i][0]=mul[1][i];

for(int j=1;j<=k;j++)}}

printf("%d",dp[n][k]);

}return

0;}

WinterEx 最大乘積

時間限制 1 sec 記憶體限制 128 mb 乙個正整數一般可以分為幾個互不相同的自然數的和,如3 1 2,4 1 3,5 1 4 2 3,6 1 5 2 4,現在你的任務是將指定的正整數n分解成若干個互不相同的自然數的和,且使這些自然數的乘積最大。只乙個正整數n,3 n 10000 第一行是分解...

YTU OJ 最大乘積

時間限制 1 sec 記憶體限制 128 mb 提交 292 解決 39 提交 狀態 討論版 命題人 acm4302 對於n個數,從中取出m個數,如何取使得這m個數的乘積最大呢?第一行乙個數 代表資料組數 每組資料共兩行 第一行兩個正整數n m,n,m 20 第二行給出n個整數,其中每個數的絕對值小...

最大乘積問題

題目描述 輸入n個元素組成的序列s,找出乙個乘積最大的連續子串行,輸出最大乘積的值。如果這個最大乘積不是正數,輸出0。n小於18,每個元素值的絕對值不大於10。輸入先輸入n的值,再依次輸入n個數的序列,遇到檔案末尾結束。輸出在一行輸出最大乘積的值。樣例輸入 52 5 1 2 1 樣例輸出 20當看到...