题解(有注释)
2024-08-26 11:20:48
发布于:上海
2阅读
0回复
0点赞
#include<iostream>//输入输出流头文件
using namespace std;//定义名字空间
int n;//定义变量n表示有n行
const int N=1005;
int dp[N][N];//dp数组
int main(){
cin>>n;//输入n
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
cin>>dp[i][j];//读入dp数组
}
}
for(int i=n-1;i>=1;i--){
//从下往上遍历行,因为模拟路径的过程中从下往上走
for(int j=1;j<=i;j++){
dp[i][j]+=max(dp[i+1][j],dp[i+1][j+1]);
//因为是从下往上遍历所以是dp[i+1][j]和dp[i+1][j+1]取min
}
}
cout<<dp[1][1];//最终输出以(1,1)为起点的最大权值路径
return 0;
}
这里空空如也
有帮助,赞一个