【Luogu】P3402最长公共子序列(LCS->nlognLIS)
2024-10-21 03:53:55
SovietPower 的题解讲的很清楚。Map或Hash映射后用nlogn求出LIS。这里只给出代码。
#include<cstdio>
#include<cctype>
#include<map>
#include<algorithm>
using namespace std;
map<int,int> vis; inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=num*+ch-'';
ch=getchar();
}
return num*f;
} int a[];
int b[];
int sot[];
int f[];
int size;
int cnt;
int check(int s){
int l=,r=cnt;
while(l<=r){
int mid=(l+r)>>;
if(f[mid]==s) return mid;
if(f[mid]<s) l=mid+;
if(f[mid]>s) r=mid-;
}
return l;
} int main(){
int n=read(),m=read();
for(int i=;i<=n;++i) a[i]=read();
for(int i=;i<=m;++i) b[i]=read();
for(int i=;i<=n;++i) vis[a[i]]=i;
for(int i=;i<=m;++i){
int S=vis[b[i]];
if(S>) b[i]=S;
else b[i]=0x7fffffff;
}
for(int i=;i<=m;++i){
if(b[i]==0x7fffffff) continue;
int pos=check(b[i]);
f[pos]=b[i];
cnt=cnt<pos?pos:cnt;
}
printf("%d",cnt);
return ;
}
最新文章
- poj 1806 Manhattan 2025
- 递归查询树形结构的SQL
- bzoj 2154 莫比乌斯反演求lcm的和
- 转:修改类不重启tomcat 自动加载项目
- sort,uniq命令
- php 7 正式发版
- hibernate 缓存 4.3
- 简单三段式状态机实验2-LCD12864
- CPU-Z五大主要功能及使用方法初步了解
- SpringBatch简介
- pig的一些实例(我常用的语法)
- LeetCode--689_Maximum_Sum_of_3_NonOverlapping_Subarrays
- 深耕品质,腾讯WeTest《2018中国移动游戏质量白皮书》正式发布
- treesoft,couchDB,
- [C++]2-2 韩信点兵
- 模型(model-->;orm)系统
- redis,memcache二者的区别是?(优缺点)
- 移动端input 无法获取焦点的问题
- java web 大总结
- SQL Server - 最佳实践 - 参数嗅探问题 转。