HDU 5904 - LCIS [ DP ]    BestCoder Round #87

题意:

给定两个序列,求它们的最长公共递增子序列的长度, 并且这个子序列的值是连续的

分析:

状态转移方程式: dp[a[i]] = max(dp[a[i]], dp[a[i]-1] + 1);

发现其实可以简化为 dp[a[i]] = dp[a[i]-1] + 1;因为计算过程中dp[a[i]]不会降低

对两个序列都求一遍,然后取两者最小值的最大值

 #include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstring>
using namespace std;
const int MAXM = ;
const int MAXN = ;
int t, n, m;
int a[MAXN], b[MAXN];
int dp1[MAXM], dp2[MAXM];
int main()
{
scanf("%d", &t);
while (t--)
{
scanf("%d%d", &n, &m);
memset(dp1, , sizeof(dp1));
memset(dp2, , sizeof(dp2));
int top = ;
for (int i = ; i <= n; i++)
{
scanf("%d", &a[i]);
dp1[a[i]] = dp1[a[i]-] + ;
top = max(top, a[i]);
}
for (int i = ; i <= m; i++)
{
scanf("%d", &b[i]);
dp2[b[i]] = dp2[b[i]-] + ;
top = max(top, b[i]);
}
int ans = ;
for (int i = ; i <= top; i++) ans = max(ans, min(dp1[i], dp2[i]));
printf("%d\n", ans);
}
}

最新文章

  1. CentOS7 Java安装
  2. WCF初探-5:WCF消息交换模式之双工通讯(Duplex)
  3. 精通 Angular JS 第一天——Angular 之禅
  4. jQueryEasyUI DateBox的基本使用
  5. 关于HTTP协议的学习
  6. 和阿文一起学H5-- H5排版八大套路
  7. 在.NET连接MySQL以及封装好的MySQLHelper.cs
  8. StatsD!次世代系统监控的核心
  9. VC实现图片拖拽及动画
  10. linux 虚拟文件系统----------Virtual File System VFSkky
  11. 【GIVENCHY商务休闲风格/白色/100%精梳棉/撞色拼接领/长袖衬衣】玛萨玛索男装网购商城
  12. uploadify.js
  13. spring使用jdbcTemplate和jdbcdaosupport和namedparameter
  14. git合并别的分支某次提交或合并
  15. Oracle子查询中any、some、all之间的区别
  16. java 静态导入 小结
  17. [BZOJ1596]电话网络
  18. SQL语句害死人
  19. 检索COML类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005&quot; 《终结篇》
  20. 【转】HTTP学习---TCP和UDP协议的区别与应用

热门文章

  1. 杂文:AlphaGo 与 Alan Turing
  2. float和double数据类型的声明,转换和计算
  3. HTML&amp;CSS基础学习笔记1-简单网页中有哪些标签?
  4. java事件响应方法汇总(容器类监听、监听器类、AbstractAction、反射)
  5. IOS 解析歌词lrc
  6. JSP(二)
  7. 如何查找到文件以后,带目录一起拷贝到新的目录? cp --parents source destination
  8. Linux企业级项目实践之网络爬虫(14)——使用正则表达式抽取HTML正文和URL
  9. java开发经验分享(二)
  10. cf493D Vasya and Chess