动态规划法:

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#define PI acos(-1.0)
#define mem(a,b) memset(a,b,sizeof(a))
#define sca(a) scanf("%d",&a)
#define sc(a,b) scanf("%d%d",&a,&b)
#define pri(a) printf("%d\n",a)
#define lson i<<1,l,mid
#define rson i<<1|1,mid+1,r
#define MM 1004
#define MN 1008
#define INF 100000007
#define eps 1e-7
using namespace std;
typedef long long ll;
typedef unsigned long long ULL;
int n1,n2,a[MM],b[MM];//a,b序列及其长度
int dp[MM][MM],pre[MM][MM],lcis[MM];//lcis为最长公共上升子序列
int ans=-1;//ans为最长公共上升子序列长度
void getLcis()
{
int x=n1,y=0,cnt=1,i,j,k;
mem(dp,0),mem(pre,0);
for(i=1;i<=n1;i++)
{
k=0;
for(j=1;j<=n2;j++)
{
if(a[i]!=b[j]) dp[i][j]=dp[i-1][j];
if(a[i]>b[j]&&dp[i][j]>dp[i][k]) k=j;
if(a[i]==b[j]) dp[i][j]=dp[i][k]+1,pre[i][j]=k;
}
}
for(i=1;i<=n2;i++)
if(dp[n1][i]>ans) ans=dp[n1][i],y=i;
while(dp[x][y])
{
if(a[x]!=b[y]) x--;
else lcis[ans-cnt]=b[y],cnt++,y=pre[x][y];
}
}
int main()
{
sca(n1);
for(int i=1;i<=n1;i++)
sca(a[i]);
sca(n2);
for(int i=1;i<=n2;i++)
sca(b[i]);
getLcis();
pri(ans);
for(int i=0;i<ans;i++)
printf("%d ",lcis[i]);
puts("");
return 0;
}

最新文章

  1. linux命令 - ln - 创建和删除软、硬链接
  2. iOS开发——数据持久化Swift篇&amp;(三)SQLite3
  3. Page.ClientScript.RegisterStartupScript
  4. MVVM in Depth
  5. 转:Selenium2.0介绍——WebDriver两种驱动浏览器的方式.
  6. 基于Angularjs实现图片上传和下载
  7. NYOJ 67 三角形面积(线代,数学)
  8. 201521123113《Java程序设计》第14周学习总结
  9. OC的内存管理和@class
  10. Java正则表达式小记
  11. 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(5)- 软件优化
  12. java 基础 字符类型
  13. 【转】 cJSON 源码解析
  14. Unity 发送游戏画面到 Winform
  15. 如何在unity中使用龙骨动画
  16. struct timeval结构体 以及 gettimeofday()函数(转)
  17. VC/Wince 实现仿Win8 Metro风格界面1——设计概述和自绘Button(附效果图)
  18. jquery 中的回调函数,回调函数(callback)是什么?
  19. 最小生成树(Kruskal和Prim算法)
  20. C#调用Excel报 error CS1969: 找不到编译动态表达式所需的一个或多个类型。是否缺少引用?

热门文章

  1. 第一数学归纳法 vs 第二数学归纳法 vs 良序定理
  2. Python的property装饰器的基本用法
  3. python基础(二)-------数据类型
  4. Swiper 判断上滑下拉操作
  5. Postman+newman+jenkins构建
  6. 用JAVA中BufferedImage画出漂亮的验证码点击变化
  7. Java日志框架那些事儿
  8. svg-写一个简单的进度条
  9. android shape 大全 (转)
  10. mysql单表多表查询