1264: [AHOI2006]基因匹配Match
1264: [AHOI2006]基因匹配Match
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 982 Solved: 635
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 1 2 2 1 1 2 1 2 2
1 2 2 2 1 1 2 2 1 1
Sample Output
HINT
[数据约束和评分方法]
60%的测试数据中:1<=N <= 1 000
100%的测试数据中:1<=N <= 20 000
Source
TLE
#include<cstdio> #include<iostream> using namespace std; int read(){register int x=0;bool f=1;register char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=0;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return f?x:-x; } const int N=1e5+10; int n,a[N],b[N],f[2][N]; int main(){n=read();n*=5;for(int i=1;i<=n;i++) a[i]=read();for(int i=1;i<=n;i++) b[i]=read();int now=0;for(int i=1;i<=n;i++){now^=1;for(int j=1;j<=n;j++){if(a[i]==b[j]){f[now][j]=f[now^1][j-1]+1;}else{f[now][j]=max(f[now^1][j],f[now][j-1]);}}}printf("%d",f[now][n]);return 0; }
AC
//f[k]表示s2匹配到s1的k位置,最大公共子串的长度 #include<cstdio> #include<iostream> using namespace std; int read(){register int x=0;bool f=1;register char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=0;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return f?x:-x; } const int N=1e5+10; int n,ans,pos[N][6],f[N]; int lowbit(int x){return x&-x; } void updata(int x,int val){for(int i=x;i<=n;i+=lowbit(i)) f[i]=max(f[i],val); } int query(int x){int res=0;for(int i=x;i;i-=lowbit(i)) res=max(res,f[i]);return res; } int main(){n=read();n*=5;for(int i=1,x;i<=n;i++) x=read(),pos[x][++pos[x][0]]=i;//加树状数组维护降至O(nlogn) for(int i=1,x;i<=n;i++){x=read();for(int j=5;j;j--){int k=pos[x][j];//s1[j]=s2[1] f[k]=max(f[k],query(k-1)+1);updata(k,f[k]);ans=max(ans,f[k]);}}printf("%d",ans);return 0; }
转载于:https://www.cnblogs.com/shenben/p/6255000.html
1264: [AHOI2006]基因匹配Match相关推荐
- bzoj 1264: [AHOI2006]基因匹配Match(树状数组)
1264: [AHOI2006]基因匹配Match Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1211 Solved: 798 [Submit ...
- bzoj 1264: [AHOI2006]基因匹配Match (树状数组优化dp)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1264 思路: n大小为20000*5,而一般的dp求最长公共子序列复杂度是 n*n的,所以我 ...
- 字符串查找匹配 —— .match()方法
今天发现一个非常好用的查找匹配字符串的方法 就是String提供的 .match() 方法 .match() 是用来查找字符的 var str = 'asdfghajkwyai'; var resul ...
- 模板匹配(Match Template)
前言 模板匹配是在图像中寻找目标的方法之一.Come On, Boy.我们一起来看看模板匹配到底是怎么回事. 模板匹配的工作方式 模板匹配的工作方式跟直方图的反向投影基本一样,大致过程是 ...
- python opencv屏幕找图_使用Python+OpenCV进行图像模板匹配(Match Template)实例-找到百度首页按钮并点击...
意图:准备一张小图,在电脑屏幕上找到小图坐标,并点击. 1 安装 opencv 和 numpy: pip3 install opencv-python 上述命令将 opencv 和 numpy都安装 ...
- [颓废史]蒟蒻的刷题记录
QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...
- 基因 ID 匹配利器
一.背景 对于每个生物信息分析的人来说,ID 匹配(映射)是一项非常常见,但又很繁琐的任务.假设,我们有一个来自上游分析的 gene symbol 或报告的 ID 列表,然后我们的下一个分析却需要使用 ...
- javascript中的正则匹配函数exec(),test(),match()
test() var str = "cat"; var reStr = /cat/; alert(reStr.test(str)); 输出为:true 它的返回值为true or ...
- ElasticSearch查询 第四篇:匹配查询(Match)
<ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...
最新文章
- LocationDemo has leaked ServiceConnection 异常并且无法定位的时候
- 数组常用解题方法(持续更新)
- leetcode-79-单词搜索(用dfs解决)
- 技术网站 --人人都是产品经理
- mysql有3个共同好友_共同好友mysql
- 一文读懂 Serverless,将配置化思想复用到平台系统中
- 看完后,别再说自己不懂用户画像了
- linux删除jpeg动态库,linux如何不用的删除动态库
- java 程序是由什么组成的 java_【问答题】一个典型的JAVA程序结构是由什么组成。...
- 【java笔记】线程(4):匿名内部类创建线程
- Git/Repo/Gerrit区别
- [在职软件工程]面向对象的分析与设计
- 教程-Delphi7 自带控件安装对应表
- lopatkin俄大神精简中文系统Windows 7 Professional SP1 7601.24540 x64 ZH-CN LITE10
- 三菱plc分拣程序_基于三菱PLC与视觉检测的快速分拣控制系统
- 从零开始写一个武侠冒险游戏-1-状态原型
- 批量查询域名是否注册
- 软件实用小技巧,大大提高学习、办公效率
- Mac系统好用快捷键简记
- Python开发常见bug