seasonl @ 2023-03-15 11:59:54
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
int N=1010;
int maxn=-1;
cin>>n;
int f[N][N];
int F[N][N];
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
cin>>f[i][j];
}
}
F[0][0]=f[0][0];
for(int i=1;i<n;i++){
F[i][0]=F[i-1][0]+f[i][0];
}
for(int i=1;i<n;i++){
for(int j=1;j<=i;j++){
F[i][j]=max(F[i-1][j],F[i-1][j-1])+f[i][j];//从上方和左上选
if(maxn<F[i][j]) maxn=F[i][j];
}
}
cout<< maxn;
return 0;
}
by sidekick257 @ 2023-03-15 12:29:11
你定义就有问题,建议重修
by sidekick257 @ 2023-03-15 12:30:25
修改后代码
by sidekick257 @ 2023-03-15 12:30:32
@702675516xz
by seasonl @ 2023-03-15 12:43:33
@sidekick257 哈哈哈哈谢谢大佬没仔细学过C++
by seasonl @ 2023-03-15 12:45:16
@sidekick257 佬还是89分怎么搞
by sidekick257 @ 2023-03-15 12:47:23
@702675516xz j从0开始循环
by sidekick257 @ 2023-03-15 12:47:43
@702675516xz 还有就是这个大F数组完全可以删掉的
by sidekick257 @ 2023-03-15 12:51:30
你从0开始再判一下越界
by seasonl @ 2023-03-15 12:58:57
@sidekick257 明白了佬终于过了