社区讨论
为啥样例输出78啊,哪位大佬能帮我找出错误啊
P1005[NOIP 2007 提高组] 矩阵取数游戏参与者 5已保存回复 17
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 17 条
- 当前快照
- 1 份
- 快照标识符
- @mhizl0yg
- 此快照首次捕获于
- 2025/11/03 18:17 4 个月前
- 此快照最后确认于
- 2025/11/03 19:33 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100][100];
string xx;
__int128 dp[100][100][100];
__int128 num;
__int128 power(__int128 a,__int128 b){
__int128 ans=1;
while(b){
if(b%2) ans*=a;
b/=2;
a=a*a;
}
return ans;
}
void out(__int128 x){
if(x<0) cout<<'-',x=-x;
if(x>9) out(x/10);
char s=x%10+48;
cout<<s;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
dp[i][j][j]=a[i][j]*2;
}
}
for(int d=1;d<=n;d++){
for(int l=2;l<=m;l++){
for(int i=1;i<=m-l+1;i++){
int j=i+l-1;
dp[d][i][j]=max(dp[d][i][j-1]+a[d][j]*power(2,l),dp[d][i+1][j]+a[d][i]*power(2,l));
}
}
}
for(int i=1;i<=n;i++){
num+=dp[i][1][m];
}
out(num);
return 0;
}
回复
共 17 条回复,欢迎继续交流。
正在加载回复...