讨论 / 手动发题解
超级乐酷 2017-08-26 18:02:55
点我顶贴 收藏 删除
#include<iostream>

using namespace std;

long long n,K,f[45][45],dp[45][45];

int main()

{

string a;

cin>>n>>K>>a;

a=" "+a;

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

f[i][i]=a[i]-'0';

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

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

f[i][j]=f[i][j-1]*10+f[j][j];

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

dp[i][0]=f[1][i];

for(int j=1;j<=K;j++)

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

for(int k=j;k<i;k++)

dp[i][j]=max(dp[i][j],dp[k][j-1]*f[k+1][i]);

cout<<dp[n][K];

}

#1 Administrator2004@2017-08-28 06:28:04
回复 删除
6
#2 lizr2004@2017-09-01 21:42:29
回复 删除
%dl
查看更多回复
提交回复