30pts!!!
查看原帖
30pts!!!
872386
Officer楼主2024/1/22 21:25
#include<bits/stdc++.h>
using namespace std;
string a;
int n,k;
long long dp[15][15],num[15][15];
int main()
{
	cin>>n>>k;
	cin>>a;
	a=" "+a;
	for(int i=1;i<=n;i++)
	{
		for(int j=i;j<=n;j++)
		{
			num[i][j]=num[i][j-1]*10+a[j]-'0';
		}
	}
	for(int i=1;i<=n;i++)
	{
		dp[i][0]=num[1][i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=k;j++)
		{
			for(int z=j;z<i;z++)
			{
				dp[i][j]=max(dp[i][j],dp[z][j-1]*num[z+1][i]);
			}
		}
	}
	cout<<dp[n][k]<<endl;
    return 0;
}

2024/1/22 21:25
加载中...