LCIS模板

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int n;
long long a[3005],b[3005],f[3005];
int main() {
scanf("%d",&n);
for(int i=1; i<=n; i++) scanf("%lld",&a[i]);
for(int i=1; i<=n; i++) scanf("%lld",&b[i]);
b[0]=-0x3f3f3f3f3f3f3f3f;
for(int i=1; i<=n; i++) {
long long val=0;
for(int j=1;j<=n;j++) {
if(a[i]>b[j]&&f[j]>val) val=f[j];
else if(a[i]==b[j]) f[j]=val+1;
}
}
long long ans=0;
for(int i=1;i<=n;i++) ans=max(ans,f[i]);
cout<<ans;
}

补一个带输出路径的

#include <cstdio>
#include <algorithm>
using namespace std;
int n,m,a[505],b[505],f[505],ans,rd[505][505],Ti,Tj,path[505];
int main() {
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]);
for(int i=1; i<=n; i++) {
int maxf=0,pos;
for(int j=1; j<=m; j++) {
if(a[i]>b[j] && f[j] >maxf)maxf=f[j],pos=j;
if(a[i]==b[j]) f[j]=maxf+1,rd[i][j]=pos;
if(ans<f[j]) {
Ti=i,Tj=j,ans=f[j];
}
}
} printf("%d\n",ans);
int len=ans;
if(len) path[len--]=Tj;
while(len&&Ti&&Tj) {
if(rd[Ti][Tj]) {
path[len--]=rd[Ti][Tj];
Tj=rd[Ti][Tj];
}
Ti--;
}
for(int i=1;i<=ans;i++) {
printf("%d ",b[path[i]]);
}
}

[tyvj-1071]LCIS 动态规划的更多相关文章

  1. [tyvj 1071] LCIS

    题目描述 熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目.小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们要研究最长公共上升子序列了. 小沐沐说,对于两个串A,B,如果它们 ...

  2. [ACM_动态规划] UVA 12511 Virus [最长公共递增子序列 LCIS 动态规划]

      Virus  We have a log file, which is a sequence of recorded events. Naturally, the timestamps are s ...

  3. CF10D LCIS (动态规划)

    题目链接 Solution 动态规划. 令 \(f_{i,j}\) 表示 \(a\) 数组前 \(i\) 个和 \(b\) 数组前 \(j\) 所得的最长的 LCIS . 转移很好想: \(a_i!= ...

  4. Codeforces Beta Round #10 D. LCIS 动态规划

    D. LCIS 题目连接: http://www.codeforces.com/contest/10/problem/D Description This problem differs from o ...

  5. [JOYOI] 1071 LCIS

    拖了好久的LCIS f[i][j]表示a串前i个,b串以b[j]结尾的LCIS长度. 转移时考虑a[i]和b[j]是否相等,如果不等: 那么既然是以j结尾,说明a串前i-1位有一个字符和b匹配了,所以 ...

  6. CJOJ 1071 【Uva】硬币问题(动态规划)

    CJOJ 1071 [Uva]硬币问题(动态规划) Description 有n种硬币,面值分别为v1, v2, ..., vn,每种都有无限多.给定非负整数S,可以选用多少个硬币,使得面值之和恰好为 ...

  7. Tyvj P3119 核电站问题 动态规划

    题目:http://tyvj.cn/p/3119 P3119 核电站问题 时间: 1000ms / 空间: 65536KiB / Java类名: Main 描述 一个核电站有N个放核物质的坑,坑排列在 ...

  8. 动态规划——最长公共上升子序列LCIS

    问题 给定两个序列A和B,序列的子序列是指按照索引逐渐增加的顺序,从原序列中取出若干个数形成的一个子集,若子序列的数值大小是逐渐递增的则为上升子序列,若A和B取出的两个子序列A1和B1是相同的,则A1 ...

  9. 动态规划:LCIS

    先给出状态转移方程: 定义状态 F[i][j]表示以a串的前i个整数与b串的前j个整数且以b[j]为结尾构成的LCIS的长度 状态转移方程: ①F[i][j] = F[i-][j] (a[i] != ...

随机推荐

  1. 基于Mybatis的Mysql数据库文档生成工具,支持生成docx(原创)

    今天不写android--也写写数据库相关的东西 -------------------- 今日老夫闲来无事,设计了一款数据库文档生成工具 眼下仅仅支持mysql 主要是生成docx的 下载链接:下载 ...

  2. 【JavaScript】——JS入门

    结束XML之旅,開始JavaScript的学习,看视频.了解了她的前世今生,还是为她捏了把汗啊! 看了部分视 频了,简单的总结一下吧! JavaScript是什么? JavaScript是一种基于面向 ...

  3. 【cl】控制台执行Java程序

    1.设置CLASSPATH环境变量,指向package所在的目录,一般是项目文件夹的bin目录 2.执行 java  package.ClassName linux: 方法一: 步骤1:export ...

  4. 【转】HDFS读写流程

    概述开始之前先看看其基本属性,HDFS(Hadoop Distributed File System)是GFS的开源实现. 特点如下: 能够运行在廉价机器上,硬件出错常态,需要具备高容错性流式数据访问 ...

  5. ORA-09925: Unable to create audit trail file汇总

    今天一兄弟的库报ORA-09925: Unable to create audit trail file,当时查 df -h有可用空间,文件夹的权限也正确,未df -i查看Inodes使用情况,审计文 ...

  6. js中简单操作

    去空格:ss.replace(/\s/g,""); 数组: 千万不能用in操作符 in 是说存不存在这个key而不是value! var a = [66,99,77]; 66 in ...

  7. Tomcat容器的Session管理

    Session管理是JavaEE容器比较重要的一部分,在app中也经常会用到.在开发app时,我们只是获取一个session,然后向session中存取数据,然后再销毁session.那么如何产生se ...

  8. kindeditor文本编辑器乱码中乱码问题解决办法

    这个问题我已经解决掉了,不是更改内容的编码格式,只要将lang/zh_CN.js  这个文件的编码转换成unicode即可 操作方法是 用记事本打开这个文件,另存为,然后更改文件的编码格式为unico ...

  9. 第5章分布式系统模式 在 .NET 中使用 DataSet 实现 Data Transfer Object

    要在 .NET Framework 中实现分布式应用程序.客户端应用程序需要显示一个窗体,该窗体要求对 ASP.NET Web Service 进行多个调用以满足单个用户请求.基于性能方面的考虑,我们 ...

  10. USB接口大全

    USB2.0系列: Standard A: Standard B: Mini Standard B: Micro USB: ** Micro USB 与 Mini B比较 ** USB3.0系列: U ...