zoukankan      html  css  js  c++  java
  • P1439 【模板】最长公共子序列

    Aimee

    这个题的数据范围(O(n^2))

    过不去,但是这可是排列啊

    求出一个数组中每一个元素在第二个中的位置,然后跑LIS

    ``cpp

    include

    include

    include

    include

    using namespace std;
    int p[100001];
    int re[100001];
    int n;
    int x;
    int Znic;
    int dp[100001];
    int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;++i){
    scanf("%d",&x);
    re[x]=i;
    }
    for(int i=1;i<=n;++i){
    scanf("%d",&x);
    p[i]=re[x];
    }
    for(int i=1;i<=n;++i){
    if(p[i]>dp[Znic]) dp[++Znic]=p[i];
    else dp[lower_bound(dp+1,dp+Znic+1,p[i])-dp]=p[i];
    }
    cout<<Znic;
    return 0;
    }

  • 相关阅读:
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
  • 原文地址:https://www.cnblogs.com/For-Miku/p/13875412.html
Copyright © 2011-2022 走看看