UVA 12511/CSU 1120 virus 最长公共上升子序列
2024-09-03 03:37:42
第一次接触一个这最长公共上升子序列
不过其实搞清楚了跟最长公共子序列和 最长上升子序列如出一辙
两重循环,对于当前不相等的,等于前一个的值,相等的,等于比当前A【i】小的最大值+1。弄个临时变量记录最大值即可
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int dp[2][1010];
int A[1010],B[1010],n,m;
int main()
{
int t;
scanf("%d",&t);
while (t--)
{
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d",&A[i]);
scanf("%d",&m);
for (int i=1;i<=m;i++) scanf("%d",&B[i]);
memset(dp,0,sizeof dp);
int maxn=0;
int p=0;
for (int i=1;i<=n;i++){
maxn=0;
for (int j=1;j<=m;j++){
if (A[i]!=B[j]) dp[p][j]=dp[p^1][j];
else{
dp[p][j]=maxn+1;
}
if (B[j]<A[i]) maxn=max(maxn,dp[p][j]);
}
p^=1;
}
int ans=0;
for (int i=1;i<=m;i++) ans=max(ans,dp[p^1][i]);
printf("%d\n",ans);
}
}
最新文章
- [BZOJ3224]Tyvj 1728 普通平衡树
- 【51Nod 1622】【算法马拉松 19C】集合对
- 在同一个页面使用多个不同的jQuery版本,让它们并存而不冲突
- Objective-C学习笔记-第三天(1)
- Lambda表达式实用
- lintcode:快乐数
- MoveManager管理类
- Centos6.4安装Mono和MonoDevelop
- java内存模型 年轻代/年老代 持久区
- nyoj 24 素数距离问题
- android_小总结_方法过时的兼容处理
- 使用 FreeMarker 替换 JSP 的 10 个理由
- IO中同步、异步与阻塞、非阻塞的区别(转)
- plaidctf2015 uncorrupt png
- js的特殊运算符
- YII 框架在 MAC OS下 连接数据库失败 提示 DB connection: SQLSTATE[HY000] [2002]
- okhttputils【 Android 一个改善的okHttp封装库】使用(二)
- 基于IPV6的数据包分析(GNS3)
- 结构体重载运算符&;srand&;rand
- Java NIO 系列学习(一)Java NIO概述
热门文章
- 吴裕雄--天生自然ORACLE数据库学习笔记:Oracle系统调优
- 1004 Counting Leaves (30分) DFS
- spring boot 中 2.X 的跨域请求
- idea中scala语言自动补全变量的同时,也自动补全类型
- 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler
- 解题报告:luogu P1433 吃奶酪
- C语言中的变量和常量的区别和使用
- iframe切换
- Intellij Idea webstorm 激活
- ADV-299	宰羊 (java,过了30%)