[USACO1.5]数字三角形 ————dp

题解:本题主要考查dp,可以逆推,一层一层推上去
代码如下:

#include<iostream>
#include<algorithm>
using namespace std;
int n,i,j;
int a[1005][1005],aaa[1005][1005];
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
    for(j=1;j<=i;j++)cin>>a[i][j];	
    
    for(i=1;i<=n;i++)
    for(j=1;j<=i;j++)aaa[i][j]=a[i][j];	
    
    for(i=n-1;i>=1;i--)
    for(j=1;j<=i;j++)
    {
    aaa[i][j]=max(aaa[i+1][j],aaa[i+1][j+1])+aaa[i][j];	
    }
    cout<<aaa[1][1];
    return 0;
}

猜你喜欢

转载自blog.csdn.net/wly1127/article/details/82829833