60分求调
查看原帖
60分求调
779211
realracing楼主2024/4/2 21:09
#include<bits/stdc++.h>
using namespace std;
int n,m;
unsigned long long a[20];
char s[20];
unsigned long long f[20][10];
long long sum(int s,int e)
{
	long long res=0;
	for(int i=s;i<=e;i++)
		res=res*10+a[i];
	return res;
}
unsigned long long dp(int u)
{
	if(u==n+1)return f[u-1][m]; 
	f[u][0]=sum(1,u);
	for(int i=1;i<=m;i++)
		for(int j=i;j<=u-1;j++)
			if(f[u][i]<f[j][i-1]*sum(j+1,u))
				f[u][i]=f[j][i-1]*sum(j+1,u);
	dp(u+1);
}
int main()
{
	cin>>n>>m;
	scanf("%s",s+1);
	for(int i=1;i<=n;i++)a[i]=s[i]-'0';
	cout<<dp(1);
	return 0;
} 
2024/4/2 21:09
加载中...