洛谷 P1439 排列LCS问题
来源:互联网 发布:巴氏刷牙法 知乎 编辑:程序博客网 时间:2024/05/22 12:05
洛谷 P1439 排列LCS问题
题目
题目描述
给出1-n的两个排列P1和P2,求它们的最长公共子序列。
输入输出格式
输入格式:
第一行是一个数n,
接下来两行,每行为n个数,为自然数1-n的一个排列。
输出格式:
一个数,即最长公共子序列的长度
输入输出样例
输入样例#1:
5
3 2 1 4 5
1 2 3 4 5
输出样例#1:
3
说明
【数据规模】
对于50%的数据,n≤1000
对于100%的数据,n≤100000
题解
单调队列+二分查找
代码(Pascal)
var n,tot:longint; x,y,q:array[0..100005]of longint; procedure init; var i,j,turn:longint; begin readln(n); for i:=1 to n do begin read(turn); x[turn]:=i; end; for i:=1 to n do read(y[i]); end; function find(x:longint):longint; var l,r,mid:longint; begin l:=0;r:=tot; while l<=r do begin mid:=(l+r) div 2; if q[mid]<x then l:=mid+1 else r:=mid-1; end; exit(l); end; procedure main; var i,p:longint; begin tot:=0; fillchar(q,sizeof(q),0); for i:=1 to n do begin p:=find(x[y[i]]); if p>tot then begin inc(tot); q[tot]:=x[y[i]]; end else q[p]:=x[y[i]]; end; end; procedure print; begin write(tot); end; begin init; main; print; end.
阅读全文
1 0
- 洛谷 P1439 排列LCS问题
- 洛谷 P1439 排列LCS问题
- 洛谷 P1439 排列LCS问题
- 洛谷 排列LCS P1439 (LCS)
- xjb——洛谷 P1439 排列LCS问题
- 洛谷P1439 最长公共子序列(LCS问题)
- 洛谷1439 排列LCS问题
- 洛谷 P1439 【模板】最长公共子序列
- LCS问题
- lcs问题
- LCS 问题
- LCS问题
- LCS 问题
- LCS问题
- 洛谷 [p1439] 最长公共子序列 (NlogN)
- 【codevs 1862】LCS问题+LCS的计数
- LCS问题算法
- TYVJ1029:LCS问题
- FMDB
- 数据仓库流程&架构(一)
- 一个新项目 如何关联到git
- ZZULIOJ 1882 蛤玮的魔法【计算几何】
- C#中数组、ArrayList和List三者的区别
- 洛谷 P1439 排列LCS问题
- LeetCode 97. Interleaving String
- HTML标签
- 最小生成树----Prim算法+loose操作
- Android 基于Zxing二维码扫描的光速实现
- 精讲 DispatchServlet源码解析(一)OnRefresh初始化
- linux信号阻塞与未决
- Lotus and Characters
- 垃圾回收