求助!!第8个TLE
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int a[1010][1010],b[1010][1010]={0},n;
int fi(int x,int y)
{
if (x==n)
return a[x][y];
if (b[x][y]!=0)
return b[x][y];
int c,m;
m=fi(x+1,y);
c=fi(x+1,y+1);
b[x][y]=max(c,m)+a[x][y];
return b[x][y];
}
int main()
{
int m,i,j;
cin>>n;
for (i=1;i<=n;i++)
for (j=1;j<=i;j++)
cin>>a[i][j];
int f=1;
m=fi(1,1);
cout<<m;
return 0;
}