codevs 2185 最长公共上升子序列--nm的一维求法
2024-08-26 23:24:49
2185 最长公共上升子序列
时间限制: 1 s
空间限制: 32000 KB
题目等级 : 钻石 Diamond
题目描述 Description
熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目。小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们要研究最长公共上升子序列了。
小沐沐说,对于两个串A,B,如果它们都包含一段位置不一定连续的数字,且数字是严格递增的,那么称这一段数字是两个串的公共上升子串,而所有的公共上升子串中最长的就是最长公共上升子串了。
奶牛半懂不懂,小沐沐要你来告诉奶牛什么是最长公共上升子串。不过,只要告诉奶牛它的长度就可以了。
输入描述 Input Description
第一行N,表示A,B的长度。
第二行,串A。
第三行,串B。
输出描述 Output Description
输出长度。
样例输入 Sample Input
4
2 2 1 3
2 1 2 3
样例输出 Sample Output
2
数据范围及提示 Data Size & Hint
1<=N<=3000,A,B中的数字不超过maxlongint
/*思路:f[]数组里面储存着到b的第i项,a从1--n的且以b[i]结尾的最长公共上升子序列长度,
问题一: dp方程说明:if(a[i]>b[j]&&maxx<f[j])更新可以用于更新b序列与a序列前i位的最长长度的最大值
maxx=f[j];
if(a[i]==b[j]) f[j]=maxx+1;因为j是内循环,所以如果maxx被更新了,则现在的b[j]是等于a[i],一定比更新maxx的bj大,所以可以直接加。
问题二: 为什么可以改为一维?:类似于背包问题,假如用f[i][j]表示到了a的第i项(不一定为ai结尾),以b的第j项结尾的最长长度,那么 f[i][j],如果ai!=bj,那么f[i-1][j]就是最佳选择,而且一定比f[i-2][j]优,而当ai==bj的时候,我们用maxx更新f[i][j],与之前的无关,那么可见F[i][j]只与i-1的值有关,那么就可以用一唯数组了。
*/
#include<iostream>
using namespace std;
#include<cstdio>
const int N=;
int a[N],b[N],f[N],maxx;
int main()
{
ios::sync_with_stdio(false);
int n;
cin>>n;
for(int i=;i<=n;++i)
cin>>a[i];
for(int i=;i<=n;++i)
cin>>b[i];
for(int i=;i<=n;++i)
{
maxx=;
for(int j=;j<=n;++j)
{
if(a[i]>b[j]&&maxx<f[j])
maxx=f[j];
if(a[i]==b[j]) f[j]=maxx+;
}
}
maxx=;
for(int i=;i<=n;++i)/*因为对于f[]数组我们是规定了结尾,所以f[n]不一定是最优值,所以要全搜索一次*/
maxx=max(f[i],maxx);
cout<<maxx<<endl;
return ;
}
最新文章
- Struts2 源码分析——拦截器的机制
- grep查询文本:问一个简单shell问题,将grep的输出赋值给一个变量
- [BCB] C++ BUILDER 绘图 随机生成图形
- Ajax与json在前后端中的细节解惑
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List转JSON,JSON转List,JSON转C#对象
- JIRA安装过程中链接mysql的问题!
- B-JUI(Best jQuery UI) 前端框架
- TFS二次开发、C#知识点、SQL知识
- Maven pom.xml简单归结
- hi3531的hifb显示1080p60Hz
- Flask框架之 --- 我的第一个个人网站(雏形)
- Encountered IOException running import job: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://slaver1:9000/user/hadoop/tb_user already exists
- javascript数据结构——栈
- Ubuntu 18.10连接Windows 桌面
- python不用声明数据类型
- Leetcode题库——16.最接近的三数之和
- [LeetCode] 382. Linked List Random Node ☆☆☆
- H5学习笔记1
- 根据 plist 还原 图片
- 您需要售后返修管理软件的N个理由