HDU 數塔
超級簡單的動態規劃
有圖有代碼,保證你看的懂!!!
#include<iostream>
using namespace std;
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int c;
cin>>c;
int n;
int dp[100][100]={0},num[100][100]={0};
while(c--)
{
cin>>n;
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
cin>>num[i][j];
}
for(i=n-1;i>=0;i--)
{
for(j=0;j<=i;j++)
{
dp[i][j]=num[i][j]+max(dp[i+1][j],dp[i+1][j+1]);
}
}
cout<<dp[0][0]<<endl;
}
return 0;
}