时间复杂度2的n次方。。。
#include<iostream>
using namespace std;
int MaxSum(int r,int j,int N,int D[100][100])
{
if(r==N)
{
return D[r][j];
}
else
{
if(MaxSum(r+1,j,N,D)>MaxSum(r+1,j+1,N,D))
{
return MaxSum(r+1,j,N,D)+D[r][j];
}
else
{
return MaxSum(r+1,j+1,N,D)+D[r][j];
}
}
}
int main()
{
int D[100][100];
int N=0;
cin>>N;
int i=0,j=0;
for(i=0;i<N;i++)
{
for(j=0;j<=i;j++)
{
cin>>D[i][j];
}
}
cout<<MaxSum(0,0,N-1,D);
/*
for(i=0;i<N;i++)
{
for(j=0;j<=i;j++)
{
cout<<D[i][j];
}
cout<<endl;
}
*/
return 0;
}