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

删除回忆录丶 提交于 2019-12-03 04:49:38

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 }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!