题解
2025-06-06 14:52:44
发布于:广东
15阅读
0回复
0点赞
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> a(n + 1), b(n + 1);
for (int i = 1; i <= n; ++i) {
cin >> a[i];
}
for (int i = 1; i <= n; ++i) {
cin >> b[i];
}
vector<int> f(n + 1, 0);
for (int i = 1; i <= n; ++i) {
int max_val = 0;
for (int j = 1; j <= n; ++j) {
if (a[i] == b[j]) {
f[j] = max(f[j], max_val + 1);
}
if (b[j] < a[i]) {
max_val = max(max_val, f[j]);
}
}
}
int ans = 0;
for (int i = 1; i <= n; ++i) {
ans = max(ans, f[i]);
}
cout << ans << endl;
return 0;
}
这里空空如也
有帮助,赞一个