嘿嘿嘿

许诺  •  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;
}

评论:

请先登录,才能进行评论