LIS和LCS的结合。

容易写出方程,复杂度是nm2,但我们可以去掉一层没有必要的枚举,用一个变量val记录前一阶段的最优解,这样优化成nm。

1<=k<j,j增加1,k的上界也增加1,就可以考虑用变量优化去掉一层循环。

 1 #include<cstdio>
2 #include<cstring>
3 #include<algorithm>
4 using namespace std;
5 const int maxn=505;
6 int n,m,T,ans;
7 int a[maxn],b[maxn],dp[maxn][maxn];
8
9 int solve(int *a,int n,int *b,int m){
10 ans=0;
11 memset(dp,0,sizeof(dp));
12 for(int i=1;i<=n;i++){
13 int val=0;//记录决策集合S(i,j)中dp[i-1][k]的最大值
14 for(int j=1;j<=m;j++){
15 if(a[i]!=b[j]) dp[i][j]=dp[i-1][j];
16 else dp[i][j]=val+1;
17 if(b[j]<a[i]) val=max(val,dp[i-1][j]);
18 ans=max(dp[i][j],ans);
19 }
20 }
21 return ans;
22 }
23
24 int main(){
25 scanf("%d",&T);
26 while(T--){
27 scanf("%d",&n);
28 for(int i=1;i<=n;i++)
29 scanf("%d",&a[i]);
30 scanf("%d",&m);
31 for(int j=1;j<=m;j++)
32 scanf("%d",&b[j]);
33 printf("%d\n",solve(a,n,b,m));
34 if(T) printf("\n");
35 }
36 return 0;
37 }

HDU1423 Greatest Common Increasing Subsequence (DP优化)的更多相关文章

  1. HDU4512完美队形I && HDU1423 Greatest Common Increasing Subsequence (LCIS)

    填坑的时候又到啦,校赛因为不会LCIS所以吃了大亏,这里要补起来.LCIS就是在两个串里找最长上升子序列,相关的博客有很多,这里自己就不写那么多了. http://www.cnblogs.com/ja ...

  2. HDU1423 Greatest Common Increasing Subsequence

    题意 如标题. \(|s1|,|s2| \leq 500\) 分析 既然是dp问题的组合,那么考虑dp. 定义状态f(i,j)表示对第一个序列s1的前i个和第二个序列s2的前j个元素求最长上升公共子序 ...

  3. HDOJ 1423 Greatest Common Increasing Subsequence(dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1423 思路分析:[问题定义]给定两个序列A[0, 1,..., m]和B[0, 1, ..., n], ...

  4. HDU1423:Greatest Common Increasing Subsequence(LICS)

    Problem Description This is a problem from ZOJ 2432.To make it easyer,you just need output the lengt ...

  5. HDOJ 1423 Greatest Common Increasing Subsequence 【DP】【最长公共上升子序列】

    HDOJ 1423 Greatest Common Increasing Subsequence [DP][最长公共上升子序列] Time Limit: 2000/1000 MS (Java/Othe ...

  6. Greatest Common Increasing Subsequence hdu1423

    Greatest Common Increasing Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536 ...

  7. POJ 2127 Greatest Common Increasing Subsequence

    You are given two sequences of integer numbers. Write a program to determine their common increasing ...

  8. POJ 1423 Greatest Common Increasing Subsequence【裸LCIS】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1423 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  9. HDU 1423 Greatest Common Increasing Subsequence LCIS

    题目链接: 题目 Greatest Common Increasing Subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...

随机推荐

  1. 浅析golang shellcode加载器

    最近也是学习了一下有关shellcode进程注入的操作,简单分享一下通过golang进行实现shellcode加载器的免杀思路. 杀软的查杀方式 静态查杀:查杀的方式是结合特征码,对文件的特征段如Ha ...

  2. IP地址和端口号

    IP地址 IP地址:指互联网协议地址(Internet Protocol Address),俗称IP.IP地址用来给一个网络中的计算机设备做唯一的编号.加入我们吧"个人电脑"比作一 ...

  3. 面试突击69:TCP 可靠吗?为什么?

    相比于 UDP 来说,TCP 的主要特性是三个:有连接.可靠.面向数据流.所谓的"有连接"指的是 TCP 中的连接管理机制,也就是著名的三次握手和四次挥手,就像打电话一样,想要正常 ...

  4. python3.7爬虫:使用Selenium带Cookie登录并且模拟进行表单上传文件

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_142 前文再续,书接上一回,之前一篇文章我们尝试用百度api智能识别在线验证码进行模拟登录:Python3.7爬虫:实时api(百 ...

  5. 利用本地HTTPS模拟环境为FastAPI框架集成FaceBook社交三方登录

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_174 提起社交,就不得不说马克·扎克伯格(Mark Zuckerberg)一手创办的社交网络(FaceBook).进入2020年, ...

  6. Odoo14 ir.actions.act_window

    xml声明 1 <record id="res_company_user_action" model="ir.actions.act_window"> ...

  7. NetCore路由的Endpoint模式

    IdentityServer里有各种Endpoint,如TokenEndpoint,UserInfoEndpoint,Authorize Endpoint,Discovery Endpoint等等.E ...

  8. AI识万物:从0搭建和部署手语识别系统 ⛵

    作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 计算机视觉实战系列: https://www.showmeai.tech ...

  9. python推导式与海象运算符

    背景:介绍两种python用于语句优化的用法 一.推导式 1.推导式简介: Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体. 支持:列表(list).元 ...

  10. Selenium 4 有哪些不一样?

    转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/d59b986c.html 你好,我是测试蔡坨坨. 众所周知,Selenium在2021年10月13号发布了Selenium4 ...