原题洛谷:https://www.luogu.com.cn/problem/P1216
照葫芦画瓢第一次写的DP,但是只通过了2/9,不知道哪里有问题,请求指导
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int dp_function(int n){
int arr[1001][1001];
int dp[1001][1001]; //dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+arr[i][j]//request=dp[n-1][n-1]
for(int i=0;i<5;i++){
for(int j=0;j<=i;j++){
scanf("%d",&arr[i][j]);
if(i==0)dp[i][j]=arr[i][j];
if(j==0)dp[i][j]=dp[i-1][j]+arr[i][j];
}
}
for(int i=1;i<n;i++){
for(int j=1;j<n;j++){
dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+arr[i][j];
}
}
return dp[n-1][n-1];
}
int main(){
int n;
//dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+dp[i][j]//request=dp[n-1][n-1]
scanf("%d",&n);
printf("%d",dp_function(n));
return 0;
}