为什么会TLE掉一个点
查看原帖
为什么会TLE掉一个点
1288371
abc123_cn楼主2025/6/28 15:04

89pts
记忆化搜索的时间复杂度应该为 O(N2)O(N^2) 但是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;
}

各位大佬看一看,是时间复杂度分析不对,还是这题不能用记忆化搜索,只能动态规划

2025/6/28 15:04
加载中...