为啥只能拿40:(
查看原帖
为啥只能拿40:(
1607947
yuantc楼主2025/1/15 13:38
#include<bits/stdc++.h>
#define yuantc 114//:)这个数据规模不需要的其实 
long long a[yuantc][yuantc],f[yuantc][yuantc],s;
int n,k,i,j,k1;
int cjmax(int a,int b){return a>b?a:b;}
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]=cjmax(f[i][k],f[j][k-1]*a[j+1][i]);
			}
		}
	}
    printf("%lld",f[n][k1]);
    return 0;
}
2025/1/15 13:38
加载中...