离散化。。。
惊奇地发现它变成了求LIS
LIS不是n^2吗?
神奇的操作
上代码

#include<bits/stdc++.h>
using namespace std;
int n,s1[100010],s2[100010],s[100010],f[100010],now;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>s1[i];
        s[s1[i]]=i;
    }
    for(int i=1;i<=n;i++)
    {
        cin>>s2[i];
    }
    for(int i=1;i<=n;i++)
    {
        if(s[s2[i]]>f[now])
        {
            f[++now]=s[s2[i]];
        }
        else
        {
            int k=lower_bound(f+1,f+now+1,s[s2[i]])-f;
            f[k]=s[s2[i]];
        }
    }
    cout<<now;
}

相关文章:

  • 2022-03-04
  • 2022-12-23
  • 2022-12-23
  • 2021-10-15
  • 2022-12-23
  • 2022-01-05
  • 2022-12-23
  • 2021-09-03
猜你喜欢
  • 2021-11-29
  • 2021-07-23
  • 2022-02-18
  • 2021-08-28
  • 2021-11-07
  • 2021-04-22
相关资源
相似解决方案