博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 1264 基因匹配Match(LCS转化LIS)
阅读量:7041 次
发布时间:2019-06-28

本文共 663 字,大约阅读时间需要 2 分钟。

题目链接:

题意:给出两个数列,每个数列的长度为5n,其中1-n每个数字各出现5次。求两个数列的最长公共子列。

思 路:首先找出每个数字在第二个数列中出现的位置,对于第一个数列构造出一个新的数列,每个数用这个数在第二个数列中出现的5个位置代替。这样求最长上升子 列。注意的是,在求到每个数(这里指原第一个数列中的每个数)为止的LIS时,替换后的5个数字要先求大的。。不清楚的看代码。

 

int a[N*5],b[N*5],n;vector
V[N];int s[N*5];void add(int x,int t){ while(x
ans) ans=s[x]; x-=x&-x; } return ans;}int main(){ RD(n); int i,j; FOR1(i,n*5) RD(a[i]); FOR1(i,n*5) RD(b[i]),V[b[i]].pb(i); int ans=0,temp,x; for(i=1;i<=n*5;i++) { for(j=4;j>=0;j--) { x=V[a[i]][j]; temp=get(x-1)+1; if(temp>ans) ans=temp; add(x,temp); } } PR(ans);}

 

 

 

转载地址:http://znxal.baihongyu.com/

你可能感兴趣的文章
XTTS,又一个值得你重视的Oracle数据库迁移升级利器
查看>>
error: src refspec master does not match any. error: failed to push some refs to
查看>>
《C语言及程序设计》实践项目——用break和continue改变流程
查看>>
Nodejs进阶:基于express+multer的文件上传
查看>>
利用ROS搭建应用基础套件
查看>>
MySQL · 物理备份 · Percona XtraBackup 备份原理
查看>>
The total number of locks exceeds the lock table size错误(已纠正)
查看>>
Java千百问_05面向对象(005)_接口和抽象类有什么区别
查看>>
c++虚函数表探究
查看>>
java自定义注解
查看>>
Zend的Registry机制
查看>>
MySQL内核月报 2014.10-MySQL· 捉虫动态·崩溃恢复失败
查看>>
IOS开发之绝对布局和相对布局(屏幕适配)
查看>>
算法设计与分析 上机题Mergesort
查看>>
WinForm 清空界面控件值的小技巧
查看>>
jQuery源码-dom操作之jQuery.fn.html
查看>>
IOS bug之Code Sign error:Provisioning profile
查看>>
Win10系统菜单打不开问题的解决,难道是Win10的一个Bug ?
查看>>
Xcode连接git@osc
查看>>
【Oracle】Current online Redo 和 Undo 损坏的处理方法
查看>>