讨论 / AC代码
fsdcyr 2015-06-08 05:05:46
点我顶贴 收藏 删除
#include <iostream>

#include <cstring>

#include <cstdio>

#include <algorithm>

using namespace std;

typedef long long LL;

const int maxn = 50;

int n,k;

char s[maxn];

LL dp[maxn][maxn];

LL mul[maxn][maxn];

int main()

{

scanf("%d%d",&n,&k);

k++;

scanf("%s",s+1);

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

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

mul[i][j]=mul[i][j-1]*10+(s[j]&0xf);

}

}

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

dp[i][1]=mul[1][i];

}

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

for(int j=1;j<=k&&j<=i;++j){

for(int k=j-1;k<i;++k){

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

}

}

}

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

return 0;

}

查看更多回复
提交回复