POJ 2127
#include <iostream>
#define MAXN 501
using namespace std; int a[MAXN],b[MAXN],ans[MAXN]; int GCIS(int l1, int *a, int l2, int *b); int main()
{
//freopen("acm.acm","r",stdin);
int l_1;
int l_2;
int i;
int j;
int ans_max;
// cin>>l_1;
scanf("%d",&l_1); for(i = ; i < l_1; ++ i)
{
// cin>>a[i];
scanf("%d",&a[i]);
} // cin>>l_2;
scanf("%d",&l_2);
for(i = ; i < l_2; ++ i)
{
//cin>>b[i];
scanf("%d",&b[i]);
} cout<<(ans_max = GCIS(l_1,a,l_2,b) )<<endl; for(i = ; i < ans_max; ++ i)
{
cout<<ans[i]<<" ";
}
cout<<endl; } /////////////////////////////////////
//最长公共上升子序列~
/////////////////////////////////////
int GCIS(int l1, int *a, int l2, int *b)//ans[0...DP[max]-1]为序列,最长公共递增子序列!
{
int f[MAXN+][MAXN+];
int DP[MAXN+];
int i,j,k,max;
memset(f,,sizeof(f));
memset(DP,,sizeof(DP));
for (i=;i<=l1;i++)
{
k=;
for(int kk = ;kk <= l2;++ kk)
{
f[i][kk] = f[i-][kk];
}
for (j=;j<=l2;j++)
{
if(b[j-] < a[i-] && DP[j] > DP[k])
k=j;
if(b[j-]==a[i-]&&DP[k]+>DP[j])
{
DP[j]=DP[k]+;
f[i][j]=i*(l2+)+k;
}
}
}
max=;
for(i=;i<=l2;i++)
{
if (DP[i]>DP[max])
max=i;
}
i=l1*l2+l1+max;
for(j = DP[max];j > ;j --)
{
ans[j-] = b[i%(l2+)-];
i=f[i/(l2+)][i%(l2+)];
}
return DP[max];
}
///////////////////////////////////////////////////
//返回值是子序列的容量,容器为ans[]
///////////////////////////////////////////////////
关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。

技术网站地址: vmfor.com
POJ 2127的更多相关文章
- POJ 2127 Greatest Common Increasing Subsequence -- 动态规划
题目地址:http://poj.org/problem?id=2127 Description You are given two sequences of integer numbers. Writ ...
- 【noi 2.6_2000】&【poj 2127】 最长公共子上升序列 (DP+打印路径)
由于noi OJ上没有Special Judge,所以我是没有在这上面AC的.但是在POJ上A了. 题意如标题. 解法:f[i][j]表示a串前i个和b串前j个且包含b[j]的最长公共上升子序列长度 ...
- poj 2127 LCIS 带路径输出
这个题 用一维 为什么错了: 因为 用一维 dp 方程肯定也是一维:但是有没有想,第 i 个字符更新了 j 位置的最优结果,然后 k 字符又一次更新了 j 位置的最优值,然后 我的结果是 i ...
- POJ 2127 最长公共上升子序列
动态规划法: #include <iostream> #include <cstdio> #include <fstream> #include <algor ...
- POJ 2127 Greatest Common Increasing Subsequence
You are given two sequences of integer numbers. Write a program to determine their common increasing ...
- 【简单dp】poj 2127 Greatest Common Increasing Subsequence【最长公共上升子序列】【模板】
Sample Input 5 1 4 2 5 -12 4 -12 1 2 4 Sample Output 2 1 4 题目:给你两个数字序列,求出这两个序列的最长公共上升子序列.输出最长的长度,并打表 ...
- 最长公共上升子序列 (poj 2127) (Greatest Common Increasing Subsequence)
\(Greatest Common Increasing Subsequence\) 大致题意:给出两个长度不一定相等的数列,求其中最长的公共的且单调递增的子序列(需要具体方案) \(solution ...
- ACM - 动态规划专题 题目整理
CodeForces 429B Working out 预处理出从四个顶点到某个位置的最大权值,再枚举相遇点,相遇的时候只有两种情况,取最优解即可. #include<iostream> ...
- LICS O(n*m)+前驱路径
LICS:最长公共上升子序列: 一般令f[i][j]表示a串前i位,b串以j结尾的LICS长度.于是,答案为:max(1~m)(f[n][i]); 朴素做法:O(n^3) 相等时,从1~j-1枚举最大 ...
随机推荐
- java中对象的序列化和反序列化
[对象的序列化和反序列化 ] 1.定义:序列化--将对象写到一个输出流中.反序列化则是从一个输入流中读取一个对象.类中的成员必须是可序列化的,而且要实现Serializable接口,这样的类的对象才能 ...
- Kettle计算器的使用以及字符串格式化
1.简介 先生成随机数,将生成的2列随机数进行计算,并且格式化计算结果 2.kettle流程图 3.流程图详细描述 3.1生成随机数 生成2个随机数字,列名为N1,N2 3.2计算器 将N1与N2对应 ...
- Mysql数据库基本配置
一 数据库基本配置包括编码方式 (安装环境是在linux下) 1.1 进入数据库 开启数据库服务:service mysqld start/restart(如果开启话可以重启) 关闭数据库服务:ser ...
- SQL Server Analysis Services 数据挖掘
假如你有一个购物类的网站,那么你如何给你的客户来推荐产品呢?这个功能在很多 电商类网站都有,那么,通过SQL Server Analysis Services的数据挖掘功能,你也可以轻松的来构建类似的 ...
- epoll重要
EPOLL事件分发系统可以运转在两种模式下:Edge Triggered (ET).Level Triggered (LT). LT是缺省的工作方式,并且同时支持block和no-blocksocke ...
- django-south
python manage.py schemamigration youappname --initial # --initial在数据库创建models定义的表,以及South需要的south_mi ...
- 条款11:在operator=中处理“自我赋值”
什么是自我赋值,就是 v = v 这种类型的语句,也许很多人都会说鄙视这种写法,但是如下的写法会不会出现呢? 比如:a[i] = a[j]; // 不巧的是i可能和j相等 *px = *py ...
- 无法解决“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”与“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”之间的冲突。正在随意选择“Newtonsoft.Jso
今天的程序莫名报错: 无法解决“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed” ...
- copy-mutableCopy
copy和mutableCopy语法的目的:改变副本的时候,不会影响到源对象:调用Copy产生的对象是不可变的,调用mutableCopy产生的对象是可变的,与调用对象是否可变无关. Copy 需要先 ...
- 第一个完整的cppunit单元测试程序
在极限编程中,测试程序本应该在编写主程序之前就要写好,然后将写好的类程序放在测试程序中进行测试,但考虑到项目中需求文档等并未将接口定义好,我无从开始,而且,自己对单元测试也是刚刚熟悉,需要一边写测试程 ...