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 21231
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周年...