【JZOJ 4810】【NOIP2016提高组 五校联考1】道路规划
来源:互联网 发布:常用推荐算法 编辑:程序博客网 时间:2024/05/22 10:44
Description
Analysis
首先,把下面一行翻转,则所谓“平等互惠”就是LCS,答案就是两个序列的LCS
但是LCS用dp做是n^2的,承受不了
不妨做个映射:
pos[a[i]]=i
b[i]=pos[b[i]]
这样就把下面一行变成了该数再上面一行的出现顺序!
这样,你会发现答案就是LIS,直接nlogn求
Code
#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)using namespace std;const int N=100010;int pos[N],a[N],d[N];int main(){ int n,x,ans=0; scanf("%d",&n); fo(i,1,n) { scanf("%d",&x); pos[x]=i; } for(int i=n;i>0;i--) scanf("%d",&a[i]),a[i]=pos[a[i]]; memset(d,127,sizeof(d)); d[1]=a[1]; fo(i,2,n) { int k=lower_bound(d+1,d+n+1,a[i])-d; ans=max(ans,k); d[k]=min(d[k],a[i]); } printf("%d",ans); return 0;}
0 0
- 【JZOJ 4810】【NOIP2016提高组 五校联考1】道路规划
- JZOJ 4810 【NOIP2016提高A组五校联考1】道路规划
- 【JZOJ 4811】【NOIP2016提高组 五校联考1】排队
- 【JZOJ 4812】【NOIP2016提高组 五校联考2】string
- 【JZOJ 4813】【NOIP2016提高组 五校联考2】running
- 【JZOJ 4814】【NOIP2016提高组 五校联考2】tree
- 【JZOJ 4806】【NOIP2016提高组 五校联考3】打工
- 【JZOJ 4817】【NOIP2016提高组 五校联考4】square
- 【JZOJ 4816】【NOIP2016提高组 五校联考4】label
- 【JZOJ 4809】【NOIP2016提高组 五校联考1】挖金矿
- 【JZOJ4810】【NOIP2016提高A组五校联考1】道路规划
- 【NOIP2016提高A组五校联考1】道路规划
- JZOJ4810. 【NOIP2016提高A组五校联考1】道路规划
- 【NOIP2016提高A组五校联考1】道路规划
- 【NOIP2016提高A组五校联考1】道路规划
- 【NOIP2016提高A组五校联考1】道路规划
- NOIP2016提高组 五校联考1 总结
- jzoj 4811. 【NOIP2016提高A组五校联考1】排队
- 打造自己的MVC 4-3 4-4
- 如何解决“access violation at address”错误
- 2016年10月5日
- 字符串反转
- 值传递和引用传递,ref的作用,序列化和反序列化
- 【JZOJ 4810】【NOIP2016提高组 五校联考1】道路规划
- [李景山php]每天TP5-20161204|Loader.php-2
- Git上传代码到github
- C语言笔记(《C与指针》)
- Android使用post方式上传图片到服务器的方法
- Android基础之内存溢出
- 迷宫问题
- windows7下的PHP+apache+mysql+eclipse for php 开发环境搭建
- java单链表的基本操作