一本通代码洛谷40分emmm
下面40的码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
long long f[2000][2000],a[2000][2000];
long long s;
int n,i,k,kl,j;
int main()
{
scanf("%d%d",&n,&kl);
scanf("%lld",&s);
for(i=n;i>=1;i--) {
a[i][i]=s%10;
s/=10;
}
for(i=2;i<=n;i++)
for(j=1;j<=i-1;j++)
a[j][i]=a[j][i-1]*10+a[i][i];
for(i=1;i<=n;i++)
f[i][0]=a[1][i];
for(k=1;k<=kl;k++)//k代表要加第k个*
for(i=k+1;i<=n;i++)//i代表从哪里加
for(j=k;j<i;j++)//j代表第k-1个*从哪来
f[i][k]=max(f[i][k],f[j][k-1]*a[j+1][i]);
printf("%lld\n",f[n][kl]);
return 0;
}