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

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

题目链接:

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

思路:LCS转变为LIS,对于每个在第一个数组中出现的数字,将它转变为在第二个数组里出现的位置,注意这个位置要从大到小排,然后对这个数组做LIS。

#include
#include
#include
#include
#include
int q[1000005],a[1000005],b[1000005],n,p[1000005],s[100005][6];int find(int x){ int l=1,r=q[0],ans; if (x<=q[1]) return 0; while (l<=r){ int mid=(l+r)/2; if (q[mid]
=1;j--) p[++p[0]]=s[t][j]; } q[0]=1; q[1]=p[1]; for (int i=2;i<=p[0];i++){ if (p[i]>q[q[0]]) q[++q[0]]=p[i]; else{ int t=find(p[i]); q[t+1]=p[i]; } } printf("%d\n",q[0]); }

 

转载于:https://www.cnblogs.com/qzqzgfy/p/5553860.html

你可能感兴趣的文章
AD 脚本kixtart运用之六(outlook邮件批量生成签名)
查看>>
优化SQL查询:如何写出高性能SQL语句
查看>>
简单易用的库存管理软件、进销存软件
查看>>
docker WARNING: IPv4 forwarding is disabled. 解决方法
查看>>
Tomcat+Nginx+Memcached集群部署
查看>>
通过FFMPEG代码学习函数指针和指针函数
查看>>
puppet 基础篇
查看>>
到底怎么样才叫看书?
查看>>
python 将ipv4的格式转换
查看>>
C语言宏的副作用的简单实例
查看>>
关于C语言结构体对齐的学习
查看>>
富文本框
查看>>
windows下安装rabbitMQ
查看>>
20个优秀的移动(iPhone)网站设计案例
查看>>
CentOS 6.3安装Nginx开启目录浏览、下载功能
查看>>
oracle登陆认证方式
查看>>
FMDB/SQLCipher数据库管理
查看>>
cocos_python
查看>>
关于安装oracle 11G R2 for Windows X64问题
查看>>
springmvc 重定向传递参数
查看>>