P1439 【模板】最长公共子序列
1 #include <bits/stdc++.h>
2 using namespace std;
3 const int maxn = 1e5+5;
4 int id[maxn];
5 vector<int> ve;
6 int main() {
7 int n; scanf("%d",&n);
8 for (int i = 1; i <= n; ++i) {
9 int x; scanf("%d",&x);
10 id[x] = i;
11 }
12 for (int i = 1; i <= n; ++i) {
13 int x; scanf("%d",&x);
14 x = id[x];
15 if (i == 1) ve.push_back(x);
16 else {
17 if (x > ve[ve.size()-1]) ve.push_back(x);
18 else {
19 ve[lower_bound(ve.begin(),ve.end(),x)-ve.begin()] = x;
20 }
21 }
22 }
23 printf("%d",ve.size());
24 return 0;
25 }