洛谷 P1018 乘積最大

2022-04-04 16:18:23 字數 2024 閱讀 6576

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

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

同時,為了幫助選手能夠正確理解題意,主持人還舉了如下的乙個例子:

有乙個數字串: 312312 , 當 n=3,k=1n=3,k=1 時會有以下兩種分法:

1、 3 \times 12=363×12=36

2、 31 \times 2=6231×2=62

這時,符合題目要求的結果是: 31 \times 2 = 6231×2=62

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

輸入格式:

程式的輸入共有兩行:

第一行共有 22 個自然數 n,kn,k ( 6≤n≤40,1≤k≤66≤n≤40,1≤k≤6 )

第二行是乙個長度為 nn 的數字串。

輸出格式:

結果顯示在螢幕上,相對於輸入,應輸出所求得的最大乘積(乙個自然數)。

輸入樣例#1: 複製

4  2

1231

輸出樣例#1: 複製

62
noip2000提高組第二題

思路:先預處理出每個數來,然後動歸。

狀態轉移方程見**。資料範圍較大,需要高精。

#include#include

#include

#include

using

namespace

std;

char x[45

];int

n,m,ans;

long

long dis[45][45],f[45][45

];int

main()

for(int i=1;i<=n;i++)

for(int j=i+1;j<=n;j++)

dis[i][j]=dis[i][j-1]*10+x[j]-'0'

;

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

][i];

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

for(int i=k+1;i<=n;i++)

for(int j=k;j)

f[i][k]=max(f[i][k],f[j][k-1]*dis[j+1

][i]);

cout

<

9 5945796324

*/

60分**。

#include#include

using

namespace

std;

int n,k,a[50

];char s[50

];struct

nodecut[

50][10],ans[50

];node culc(

int l,int

r)

returne;}

node mul(node e1,node e2)

while(q>0

)

return

emul;

}node max(node e1,node e2)

return

e1;}

intmain()

for(int i=1;i)

}if(cut[i][k].exi)

}node lastans;lastans.exi=false

;

for(int i=1;i)

for(int i=lastans.v;i>=1;i--) printf("%d"

,lastans.c[i]);

return0;

}

洛谷 P1018 乘積最大

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

洛谷P1018 乘積最大

洛谷p1018 乘積最大 題意 給乙個長度為n的數字串,在這個數字串中插入k個乘號,使得表示式的乘積最大 分析一下 算了,懶得分析了,中有詳細注釋,直接看 吧 君 include using namespace std const int maxn 45 struct biginteger bigi...

洛谷 P 1018 乘積最大 Codevs

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