社区讨论
60求助
P1018[NOIP 2000 提高组] 乘积最大参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mhj1l5qc
- 此快照首次捕获于
- 2025/11/03 19:13 4 个月前
- 此快照最后确认于
- 2025/11/03 19:13 4 个月前
Subtask #0 7,8,9,10测试点全错
看了下题解感觉也没毛病啊
C看了下题解感觉也没毛病啊
#include<iostream>
using namespace std;
long long n,k,a[45],f[45][45],g[45][45];
char c;
int main(){
cin>>n>>k;
for(long long i=1;i<=n;i++){
cin>>c;
a[i]=c-'0';
}
for(long long i=1;i<=n;i++){
for(long long j=i;j<=n;j++){
g[i][j]=g[i][j-1]*10+a[j];
}
}
for(long long i=1;i<=n;i++){
f[i][0]=g[1][i];
}
for(long long i=1;i<=n;i++){
for(long long j=1;j<=k;j++){
if(j>=i) break;
for(long long x=j;x<i;x++){
f[i][j]=max(f[i][j],f[x][j-1]*g[x+1][i]);
}
}
}
cout<<f[n][k];
return 0;
}
```#include<iostream>
using namespace std;
long long n,k,a[45],f[45][45],g[45][45];
char c;
int main(){
cin>>n>>k;
for(long long i=1;i<=n;i++){
cin>>c;
a[i]=c-'0';
}
for(long long i=1;i<=n;i++){
for(long long j=i;j<=n;j++){
g[i][j]=g[i][j-1]*10+a[j];
}
}
for(long long i=1;i<=n;i++){
f[i][0]=g[1][i];
}
for(long long i=1;i<=n;i++){
for(long long j=1;j<=k;j++){
if(j>=i) break;
for(long long x=j;x<i;x++){
f[i][j]=max(f[i][j],f[x][j-1]*g[x+1][i]);
}
}
}
cout<<f[n][k];
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...