Sunhaotian2011 @ 2023-08-18 21:25:27
/*
*/
#include<bits/stdc++.h>
#define itn int
#define el endl
using namespace std;
int f[1010][1010];
int main(){
int n;
cin>>n;
int arr[n][n];
for(int i=1;i<=n;i++){
for(itn j=1;j<=i;j++){
cin>>arr[i][j];
}
}
for(int i=1;i<=n;i++){
for(itn j=1;j<=i;j++){
f[i][j]=max(f[i-1][j],f[i-1][j-1])+arr[i][j];
}
}
itn maxx=INT_MIN;
// for(int i=1;i<=n;i++){
// for(itn j=1;j<=i;j++){
// cout<<f[i][j]<<" ";
// }
// cout<<el;
// }
for(itn i=1;i<=n;i++){
maxx=max(maxx,f[n][i]);
}
cout<<maxx;
return 0;
}
#4测试点十分奇怪,本地可以过,提交过不了。
#4数据: 输入
输入
10
1
1 1
1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 99
输出
108
请大佬指教,谢谢!
by Sunhaotian2011 @ 2023-08-18 21:26:37
提交记录
by dongshucheng @ 2023-08-18 22:07:40
@Sunhaotian2011 我认为本题有两种做法: 一、从底部往上面走,可能会比较方便。
二、从上往下走,在你的代码基础上做一下改 动:
1、将数组
2、优化:可以直接在
by Sunhaotian2011 @ 2023-08-19 18:23:52
@dongshucheng 谢谢,已关