版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dd_lucky/article/details/58601453
#1037 : 数字三角形
题目链接:
点击打开链接
思路:从后往前dp就好
代码:
#include<iostream>
using namespace std;
int map[101][101];
int dp[101][101];
int main()
{
int n;
while(cin >> n)
{
for(int i = 1;i <= n; i ++)
{
for(int j = 1; j <= i ; j ++ )
cin >> map[i][j];
}
for (int i = n ; i >= 1 ; i --)
{
for(int j = 1 ; j <= n ; j ++)
{
dp[i][j] += map[i][j]+max( dp[i+1][j] , dp[i+1][j+1]);
}
}
cout<<dp[1][1]<<endl;
}
}