社区讨论
玄学的WA,下了数据看看没错啊,求助
P1018[NOIP 2000 提高组] 乘积最大参与者 6已保存回复 19
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 19 条
- 当前快照
- 1 份
- 快照标识符
- @mi6woopt
- 此快照首次捕获于
- 2025/11/20 12:03 4 个月前
- 此快照最后确认于
- 2025/11/20 15:07 4 个月前

我下了数据,不知道为什么错了,求助。
附代码:
CPP#include<bits/stdc++.h>
using namespace std;
int n,K;
char m[41];
long long num[41][41];
long long dp[50][41][41];
void pre();
int main(){
// freopen("乘积最大.in","r",stdin);
cin>>n>>K;
int i,j,k,l;
getchar();
for(i=1;i<=n;i++){
m[i]=getchar();
}
pre();
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
dp[0][i][j]=num[i][j];
for(k=1;k<=K;k++){
for(i=1;i<=n;i++){
for(j=i+1;j<=n;j++){
dp[k][i][j]=-2147483647;
for(l=i;l<j;l++){
dp[k][i][j]=max(dp[k][i][j],dp[k-1][i][l]*num[l+1][j]);
}
}
}
}
printf("%lld\n",dp[K][1][n]);
return 0;
}
void pre(){
int i,j;
for(i=1;i<=n;i++){
num[i][i]=m[i]-'0';
for(j=i+1;j<=n;j++){
num[i][j]=num[i][j-1]*10+m[j]-'0';
}
}
}
回复
共 19 条回复,欢迎继续交流。
正在加载回复...