1. 程式人生 > >[USACO1.5]數字三角形 ————dp

[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;
}