题解
2023-08-26 12:41:13
发布于:广东
1阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
char str[41];
long long num[41][41],f[41][7];
int n,k,lenstr;
int main()
{
ios::sync_with_stdio(false); // 快读
cin>>n>>k>>str;
lenstr=strlen(str);
for(int i=0;i<lenstr;i++)
{
num[i][i]=str[i]-'0';
for(int j=i+1;j<lenstr;j++)
num[i][j]=num[i][j-1]*10+str[j]-'0';
}
for(int i=1;i<=lenstr;i++)
f[i][0]=num[0][i-1];
for(int i=1;i<=lenstr;i++)
for(int j=1;j<=i-1&&j<=k;j++)
for(int k1=1;k1<i;k1++)
if(k1>j-1)
f[i][j]=max(f[i][j],f[k1][j-1]*num[k1][i-1]);
cout<<f[lenstr][k]<<endl;
return 0;
}
这里空空如也
有帮助,赞一个