本人这题能过样例,下载的部分测试数据答案我逐字逐句对过,也没问题,这题可能要用高精度也可以理解,但诡异的是全给我WA了是什么意思。(包括我下载的那条样例,我自己对过一遍真的没问题但它没给过!?)还请大佬赐教
代码如下:
#include<bits/stdc++.h>
using namespace std;
long long f[41][7],a[41][41];int n,k;
int main()
{
scanf("%d%d",&n,&k);getchar();
for(int i=1;i<=n;i++) a[i][i]=getchar()-'0';
for(int i=1;i<=n-1;i++){
for(int j=i+1;j<=n;j++){
a[i][j]=a[i][j-1]*10+a[j][j];
}
}
for(int i=1;i<=n;i++) f[i][0]=a[1][i];
for(int i=1;i<=k;i++){
for(int j=i+1;j<=n;j++){
for(int l=i;l<j;l++){
f[j][i]=max(f[j][i],f[l][i-1]*a[l+1][j]);
}
}
}
printf("%lld\n",f[n][k]);
return 0;
}