Vijos P1347 乘積最大

2021-07-22 08:25:31 字數 1588 閱讀 5567

p1347乘積最大

accepted

標籤:noip普及組2000

[顯示標籤]

今年是國際數學聯盟確定的「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設計乙個程式,求得正確的答案。

程式的輸入共有兩行:

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

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

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

4 2

1231

62

1 second

noip 2023年 第六屆 普及組 第3題

設dp[i][j]為前i個數字插入j個乘號所得最大值
sum[i][j]為從i到j數字串所代表的數字
則dp[i][j] = max(dp[k][j - 1] * sum[k + 1][i]);
**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define pi acos(-1.0) #define maxn (100 + 5) #define mol 1000000007 #define inf 50000 #define lowbit(x) (x & (-x)) using namespace std; typedef long long int lli; char str[maxn]; int sum[maxn][maxn],dp[maxn][maxn]; int main() for(int i = 0; i < n; i ++) } printf("%d\n",dp[n - 1][k]); return 0; }

1017 乘積最大

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

1017 乘積最大

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

8782 乘積最大

name 8782 乘積最大 author date 27 06 18 09 17 description 8782 乘積最大 檢視 提交 統計 提問 總時間限制 1000ms 記憶體限制 65536kb 描述今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年...