许诺 • 1天前
#include<bits/stdc++.h>
using namespace std;
long long a[11][11],f[11][11];
long long s;
int n,i,k,k1,j;
int main()
{
scanf("%d%d",&n,&k1);
scanf("%lld",&s);
for(i=n;i>=1;i--)
{
a[i][i]=s%10;
s/=10;
}
for(i=2;i<=n;i++)
for(j=i-1;j>=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<=k1;k++)
for(i=k+1;i<=n;i++)
for(j=k;j<i;j++)
f[i][k]=max(f[i][k],f[j][k-1]*a[j+1][i]);
printf("%lld",f[n][k1];
return 0;
}
评论:
请先登录,才能进行评论