P1439 【模板】最长公共子序列

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 }

 

posted @ 2019-11-01 17:51  麻辣猪仔  阅读(152)  评论(0编辑  收藏  举报