看过好多人的博客,感觉要么是太复杂要么就是太不容易理解。

那就亲自动手写一个通俗易懂的。

先定义两个数组,第一个数组为主,用第二个数组来匹配第一个,看能有多少可以对应上的。

所以,其实第一个数组的内容可以暂时不考虑,当知道它对应了第二个数组的哪个数字就BINGO了。

顺着这个思路继续想就可以得到以下思路:

把第一个数组离散化(记录第一个数组变成什么)后的数组是满足上升的关系。

现在的问题就变成了求一个最长不下降序列。

二话不说上代码。

------------------------------------------一道华丽的分割线------------------------------------------

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cctype>
#define rg register
#define int long long
using namespace std;
inline int read(){
rg int s=0,f=0;
rg char ch=getchar();
while(!isdigit(ch)) f|=(ch=='-'),ch=getchar();
while(isdigit(ch)) s=(s<<1)+(s<<3)+(ch^48),ch=getchar();
return f?-s:s;
}
int n,len;
const int MAX=100010;
int a1[MAX],a2[MAX],f[MAX],b[MAX],c[MAX];
signed main(){
n=read();
for(rg int i=1;i<=n;++i){
a1[i]=read();
c[a1[i]]=i;
}
for(rg int i=1;i<=n;++i){
a2[i]=read();
}
for(rg int i=1;i<=n;++i){
if(c[a2[i]]>b[len]){
b[++len]=c[a2[i]];
f[i]=len;
continue;
}
int k=lower_bound(b+1,b+len+1,c[a2[i]])-b;
b[k]=c[a2[i]];
f[i]=k;
}
printf("%d\n",len);
return 0;
}

最新文章

  1. make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] 错误 1,make: *** [out/host/linux-x86/obj/lib/libESR_Portable.so] 错误 1
  2. 使用bind方法确定接收者
  3. 《30天自制操作系统》17_day_学习笔记
  4. JMeter学习(十)内存溢出解决方法
  5. Thrift 个人实战--初次体验Thrift
  6. iOS 获取当前城市
  7. [前端插件]Bootstrap Table服务器分页与在线编辑应用总结
  8. DBHelper数据库操作类(二)
  9. 英语之路 zt
  10. Bootstrap(v3.2.0)模态框(modal)垂直居中
  11. xgboost-python参数深入理解
  12. 201521123089 《Java程序设计》第5周学习总结
  13. DNS over TLS到底有多牛?你想知道的都在这儿
  14. 学习整理与细化(1)——Internet 的域名系统(domain name system)
  15. python 元组(tuple)的使用方法介绍
  16. python函数注释, :与 -&gt;
  17. MySQL:缓存算什么东西?!
  18. sql server 索引阐述系列七 索引填充因子与碎片
  19. Missing artifact com.oracle:ojdbc6:jar:10.2.0.4.0问题解决 ojdbc包pom.xml出错
  20. Python 网络通信协议 tcp udp区别

热门文章

  1. FLOAT 和 DOUBLE区别
  2. Oracle查询字符串数据进行排序,以及去重复
  3. [转帖]优化IMPDP/EXPDP导入导出速度
  4. 制作H5像一个div中一张长图,里边是一条一条信息,需要点击的响应式方法
  5. CH1201 最大子序和
  6. 调试ucosii_pendsv中断函数有感
  7. U68364 _GC滑迷宫
  8. 让pip使用python3而不是python2
  9. 常用API接口签名验证参考
  10. (十一)QPainter绘图, QPixmap,QImage,QPicture,QBitmap