89pts
记忆化搜索的时间复杂度应该为 O(N2)
但是TLE #8
#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
int a[N][N], b[N][N]; int n;
int dp(int x, int y)
{
if (x == n) return a[x][y];
if (b[x][y]) return b[x][y];
else return b[x][y] = a[x][y] + max(dp(x + 1, y), dp(x + 1, y + 1));
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= i; j ++)
cin >> a[i][j];
cout << dp(1, 1) << endl;
return 0;
}
各位大佬看一看,是时间复杂度分析不对,还是这题不能用记忆化搜索,只能动态规划