[tyvj-1071]LCIS 动态规划
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 动态规划的更多相关文章
- [tyvj 1071] LCIS
题目描述 熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目.小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们要研究最长公共上升子序列了. 小沐沐说,对于两个串A,B,如果它们 ...
- [ACM_动态规划] UVA 12511 Virus [最长公共递增子序列 LCIS 动态规划]
Virus We have a log file, which is a sequence of recorded events. Naturally, the timestamps are s ...
- CF10D LCIS (动态规划)
题目链接 Solution 动态规划. 令 \(f_{i,j}\) 表示 \(a\) 数组前 \(i\) 个和 \(b\) 数组前 \(j\) 所得的最长的 LCIS . 转移很好想: \(a_i!= ...
- Codeforces Beta Round #10 D. LCIS 动态规划
D. LCIS 题目连接: http://www.codeforces.com/contest/10/problem/D Description This problem differs from o ...
- [JOYOI] 1071 LCIS
拖了好久的LCIS f[i][j]表示a串前i个,b串以b[j]结尾的LCIS长度. 转移时考虑a[i]和b[j]是否相等,如果不等: 那么既然是以j结尾,说明a串前i-1位有一个字符和b匹配了,所以 ...
- CJOJ 1071 【Uva】硬币问题(动态规划)
CJOJ 1071 [Uva]硬币问题(动态规划) Description 有n种硬币,面值分别为v1, v2, ..., vn,每种都有无限多.给定非负整数S,可以选用多少个硬币,使得面值之和恰好为 ...
- Tyvj P3119 核电站问题 动态规划
题目:http://tyvj.cn/p/3119 P3119 核电站问题 时间: 1000ms / 空间: 65536KiB / Java类名: Main 描述 一个核电站有N个放核物质的坑,坑排列在 ...
- 动态规划——最长公共上升子序列LCIS
问题 给定两个序列A和B,序列的子序列是指按照索引逐渐增加的顺序,从原序列中取出若干个数形成的一个子集,若子序列的数值大小是逐渐递增的则为上升子序列,若A和B取出的两个子序列A1和B1是相同的,则A1 ...
- 动态规划:LCIS
先给出状态转移方程: 定义状态 F[i][j]表示以a串的前i个整数与b串的前j个整数且以b[j]为结尾构成的LCIS的长度 状态转移方程: ①F[i][j] = F[i-][j] (a[i] != ...
随机推荐
- javascript推断浏览器类型
<script> window["MzBrowser"]={};(function() { if(MzBrowser.platform) return; var ua ...
- Linux 服务具体解释
acpid ACPI(全 称 Advanced Configuration and Power Interface)服务是电源管理接口. 建议全部的笔记本用户开启它. 一些server可能不须要 ac ...
- 利用JAVA反射机制设计通用的DAO
利用JAVA反射机制设计一个通用的DAO 反射机制 反射机制指的是程序在运行时能够获取自身的信息.在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息. 反射机制创建类对象 ...
- chrome 插件开发2
登录 | 注册 基础文档 综述 调试 Manifest 文件 代码例子 模式匹配 分类索引 改变浏览器外观 Browser Actions 右键菜单 桌面通知 Omnibox 选项页 覆写特定页 ...
- JVM —— Java 对象占用空间大小计算
零. 为什么要知道 Java 对象占用空间大小 缓存的实现: 在设计 JVM 内缓存时(不是借助 Memcached. Redis 等), 须要知道缓存的对象是否会超过 JVM 最大堆限制, 假设会超 ...
- Running the app on your device
So far, you've run the app on the Simulator. That's nice and all but probably notwhy you're learning ...
- mysql 从库落后主库太多优化
有时候为了避免master.info和中继日志崩溃,在容忍额外的fsync()带来的开销,推荐设置sync_master_info = 1sync_relay_log = 1sync_relay_lo ...
- 解决 dotnet core 1.x 命令行(cli) 下运行路径错误
环境: Windows 10,Visual Studio 2017 centos 7,nginx,supervisor,dotnet core 1.1 问题: 在 Linux 配置 superviso ...
- 【docker】python: can't open file 'helloworld.py': [Errno 13] Permission denied
运行容器提示权限问题 docker run -v $PWD/myapp:/usr/src/myapp -w /usr/src/myapp python:3.5 python helloworld. ...
- 基于scrapy-redis组件的分布式爬虫
scrapy-redis组件安装 分布式实现流程 scrapy-redis组件安装 - 下载scrapy-redis组件:pip install scrapy-redis - 更改redis配置文件: ...