~
2024-09-22 07:10:36
发布于:上海
4阅读
0回复
0点赞
#include<iostream>
using namespace std;
int dp[1005][1005];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
cin>>dp[i][j];
}
}
for(int i=n-1;i>=1;i--){//倒着遍历,因为是从上往下走,要从下往上推
for(int j=1;j<=n;j++){
dp[i][j]=max(dp[i+1][j+1],dp[i+1][j])+dp[i][j];
//状态转移方程,表示dp[i][j]从它前面两个点中更大的继承过来
}
}
cout<<dp[1][1];
}
这里空空如也
有帮助,赞一个