超级乐酷 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];
}