为什么50分?而且我在我的c++上运行的时候是对的!
查看原帖
为什么50分?而且我在我的c++上运行的时候是对的!
952596
Daniel141130楼主2023/12/6 09:09

代码献上

#include <cstring>
#include <iostream>
using namespace std;
int n, m, a[3086], b[3086], f[2][100086];
int LCS (int l, int k) {
	for (int i = 1; i <= l; i++) {
		for (int j = 1; j <= k; j++) {
			if (a[i] == b[j]) f[i & 1][j] = f[i - 1 & 1][j - 1] + 1;
			else f[i & 1][j] = max (f[i - 1 & 1][j], f[i & 1][j - 1]);
		}
	}
	return f[l & 1][k];
}
int main(){
	//freopen ("P1439_2.in", "r", stdin);
	cin >> n;
	for (int i = 1; i <= n; i++) cin >> a[i];
	for (int j = 1; j <= n; j++) cin >> b[j];
	cout << LCS (n, n) << endl;
	return 0;
}
2023/12/6 09:09
加载中...