LIS&&LCS&&LCIS
LIS
#include<bits/stdc++.h>
using namespace std;
int n,a[100005],b[100005],ji;
int main(){
cin>>n;
for(int i=1;i<=n;i++){cin>>a[i];}
b[++ji]=a[1];
for(int i=2;i<=n;i++){
if(a[i]>b[ji]){
b[++ji]=a[i];
continue;
}
int mid,l=1,r=ji;
while(l<r){
mid=(l+r)>>1;
if(b[mid]>=a[i]) r=mid;//因为要将a[i]插入到b中,且插入位置保证b[mid]>=a[i],所以>a[i]也可能是答案
else l=mid+1;
}
b[l]=a[i];
}
cout<<ji;
}
LCS
#include<bits/stdc++.h>
using namespace std;
int n,a[100005],b[100005],f[100005],c[100005],ji;
int main(){
cin>>n;
for(int i=1;i<=n;i++){cin>>a[i];c[a[i]]=i;}
for(int i=1;i<=n;i++)cin>>b[i];
f[++ji]=c[b[1]];
for(int i=2;i<=n;i++){
if(c[b[i]]>f[ji]){
f[++ji]=c[b[i]];
continue;
}
int mid,l=1,r=ji;
while(l<r){
mid=(l+r)>>1;
if(f[mid]>=c[b[i]])r=mid;
else l=mid+1;
}
f[l]=c[b[i]];
}
cout<<ji;
}
LCIS
#include<bits/stdc++.h>
using namespace std;
int n,a[3005],b[3005],f[3005][3005],maxn;
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)cin>>b[i];
for(int i=1;i<=n;i++){
int val=0;
// if(b[])
for(int j=1;j<=n;j++){
if(a[i]==b[j]){
f[i][j]=val+1;
maxn=maxn>f[i][j]?maxn:f[i][j];
}
else f[i][j]=f[i-1][j];
if(b[j]<a[i])val=max(val,f[i-1][j]);//???????
maxn=maxn>f[i][j]?maxn:f[i][j];
}
}
cout<<maxn;
}
LIS&&LCS&&LCIS的更多相关文章
- LIS+LCS+LCIS
PS:本篇博文均采用宏#define FOR(i, a, n) for(i = a; i <= n; ++i) LIS:最长上升子序列 废话不多说:http://baike.baidu.com/ ...
- 8.3 LIS LCS LCIS(完结了==!)
感觉这个专题真不好捉,伤心了,慢慢啃吧,孩纸 地址http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28195#overview 密码 ac ...
- LIS LCS LCIS (主要过一遍,重在做题)
只详细讲解LCS和LCIS,别的不讲-做题优先. 菜鸟能力有限写不了题解,可以留评论,我给你找博客. 先得理解最长上升子序列吧,那个HDOJ拦截导弹系列可以做一下,然后用o(n)log(n)的在做一遍 ...
- LIS && LCS && LCIS && LPS && MCS模板
1. LIS (Longest Increasing Subsequence) O (n^2): /* LIS(Longest Increasing Subsequence) 最长上升子序列 O (n ...
- 线性DP总结(LIS,LCS,LCIS,最长子段和)
做了一段时间的线性dp的题目是时候做一个总结 线性动态规划无非就是在一个数组上搞嘛, 首先看一个最简单的问题: 一,最长字段和 下面为状态转移方程 for(int i=2;i<=n;i++) { ...
- LIS LCS n^2和nlogn解法 以及LCIS
首先介绍一下LIS和LCS的DP解法O(N^2) LCS:两个有序序列a和b,求他们公共子序列的最大长度 我们定义一个数组DP[i][j],表示的是a的前i项和b的前j项的最大公共子序列的长度,那么由 ...
- LIS和LCS LCIS
首先介绍一下LIS和LCS的DP解法O(N^2) LCS:两个有序序列a和b,求他们公共子序列的最大长度 我们定义一个数组DP[i][j],表示的是a的前i项和b的前j项的最大公共子序列的长度,那么由 ...
- LIS,LCS,LICS 学习笔记
1.最长上升子序列(LIS) 子序列: 1.可以不连续 2.相对位置不变 dp[i][j] 表示前i位置,最大值为j的LIS长度 1. dp[i-1][j] 前i-1位置,最大值为j的LIS长度 (没 ...
- dp入门(LIS,LCS)
LCS
随机推荐
- webpack中clean-webpack-plugin插件使用遇到的问题及解决方法
webpack 会生成文件,然后将这些文件放置在 /dist 文件夹中,但是 webpack 无法追踪到哪些文件是实际在项目中用到的. 通常,在每次构建前清理 /dist 文件夹,是比较推荐的做法,因 ...
- 洛谷 P3952时间复杂度 (本地AC测评RE的伪题解)
[题目描述] 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写 ...
- Golang error 的突围
目录 error 的困局 尝试破局 Errors are just values handle not just check errors Only handle errors once 小结 胎死腹 ...
- CNCF 宣布成立应用交付领域小组,正式开启云原生应用时代
作者|赵钰莹 作为云原生领域的顶级开源社区, Cloud Native Computing Foundation (云原生基金会,以下简称 CNCF)近日宣布成立 Application Delive ...
- Redis相关安装TCL
安装相关命令 wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gzsudo tar -xzvf tcl8.6.1-src.tar. ...
- CentOS 7.6安装MySQL 5.7GA版
环境准备 卸载mariadb rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 centos7 内部集 ...
- (二)spring 高级装配-Condition -条件化的bean
Condition:满足某个特定条件的情况下创建bean 条件化配置bean: a:@Conditional 指定一个class ,它指明了通过条件对比的类.如果没有指定class则通过Condito ...
- 浅谈 Vector
目录 浅谈Vector 1.容器基本操作 2.vector 初始化 3.vector的赋值与swap 4.vector的增删改除 1.增加元素 2.访问元素 3.删除元素 4.元素的大小 浅谈Vect ...
- Mach-O在内存中符号表地址、字符串表地址的计算
KSCrash 是一个用于 iOS 平台的崩溃捕捉框架,最近读了其部分源码,在 KSDynamicLinker 文件中有一个函数,代码如下: /** Get the segment base addr ...
- WinServer 2012 R2 安装python3.6时出现错误:0x80240017 导致安装失败
解决方法: 依次检查并更新补丁:KB2919442,KB2919355,kb2999226 KB2919442:https://www.microsoft.com/zh-cn/download/det ...