TLE,怎么添加二分,求大佬帮助
查看原帖
TLE,怎么添加二分,求大佬帮助
709380
ttltony楼主2023/1/31 15:07
#include <iostream>
#include <algorithm>

using namespace std;

int n, ans;
int a[10001], b[10001], dp[10001][10001];

int main() {
	cin >> n;
	for (int i = 1; i <= n; i ++ ) cin >> a[i];
	for (int i = 1; i <= n; i ++ ) cin >> b[i];
	for (int i = 1; i <= n; i ++ ) for (int j = 1; j <= n; j ++ ) {
			if (dp[i][j]) continue;
			if (a[i] == b[j]) dp[i][j] = dp[i - 1][j - 1] + 1;
			else dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
		}
	for (int i = 1; i <= n; i ++ ) for (int j = 1; j <= n; j ++ ) ans = max(ans, dp[i][j]);
	cout << ans << endl;
    return 0;
}

代码如上,求问

2023/1/31 15:07
加载中...