lis:最长递增子序列

复杂度:$O(nlgn)$

 #include<iostream>
#include<cstdio>
using namespace std;
int num[],lis[],res=;
int solve(int x)
{
int a=,b=res;
while(a!=b)
{
int mid=(a+b)/;
if(lis[mid]>=x)
b=mid;
else
a=mid+;
}
return a;
}
int main()
{
int n;
cin>>n;
for(int i=;i<=n;i++)
scanf("%d",&num[i]);
for(int i=;i<=n;i++)
{
if(lis[res]<=num[i])
res++,lis[res]=num[i];
else
lis[solve(num[i])]=num[i];
}
cout<<res<<endl;
return ;
}

lcs:最长公共子序列

复杂度$n\times m$

 #include <cstdio>
#include <iostream>
using namespace std;
int dp[][];
int main()
{
string a,b;
while(cin>>a>>b)
{
for(int i=;i<=a.size();i++)
for(int j=;j<=b.size();j++)
{
if(a[i-]==b[j-])dp[i][j]=dp[i-][j-]+;
else dp[i][j]=max(dp[i-][j],dp[i][j-]);
} char path[];
for(int aa=a.size(),bb=b.size(),num=;aa>=&&bb>=;)
{
if(a[aa-]==b[bb-])
{
path[num++]=a[aa-];
aa--,bb--;
}
else
{
if(dp[aa-][bb]>dp[aa][bb-])
aa--;
else bb--;
}
}
cout<<dp[a.size()][b.size()]<<endl;
for(int i=dp[a.size()][b.size()];i>=;i--)
cout<<path[i]<<" ";
cout<<endl;
}
return ;
}

lics: 最长公共上升子序列

复杂度$n\times m$

 #include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxn=;
int n,m,num1[maxn],num2[maxn],f[maxn];
int lics()
{
for(int i=;i<=m;i++)f[i]=;
int res=;
for(int i=;i<=n;i++)
{
int k=;
for(int j=;j<=m;j++)
{
if(num1[i]==num2[j])
f[j]=max(f[j],k+); if(num2[j]<num1[i])
{
k=max(f[j],k);
}
res=max(res,f[j]);
}
}
return res;
}
int main()
{
int T;
cin>>T;
for(int i=;i<=T;i++)
{
cin>>n;
for(int j=;j<=n;j++)
scanf("%d",&num1[j]);
cin>>m;
for(int j=;j<=m;j++)
scanf("%d",&num2[j]);
cout<<lics()<<endl;
if(i!=T)
puts("");
}
return ;
}

最长递增子序列(lis)最长公共子序列(lcs) 最长公共上升子序列(lics)的更多相关文章

  1. UVa 10534 Wavio Sequence (最长递增子序列 DP 二分)

    Wavio Sequence  Wavio is a sequence of integers. It has some interesting properties. ·  Wavio is of ...

  2. 51nod 1218 最长递增子序列 V2(dp + 思维)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1218 题解:先要确定这些点是不是属于最长递增序列然后再确定这 ...

  3. 最长公共子序列(LCS)和最长递增子序列(LIS)的求解

    一.最长公共子序列 经典的动态规划问题,大概的陈述如下: 给定两个序列a1,a2,a3,a4,a5,a6......和b1,b2,b3,b4,b5,b6.......,要求这样的序列使得c同时是这两个 ...

  4. 算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列

    出处 http://segmentfault.com/blog/exploring/ 本章讲解:1. LCS(最长公共子序列)O(n^2)的时间复杂度,O(n^2)的空间复杂度:2. 与之类似但不同的 ...

  5. 最长连续公共子序列(LCS)与最长递增公共子序列(LIS)

    最长公共子序列(不连续) 实际问题中也有比较多的应用,比如,论文查重这种,就是很实际的一个使用方面. 这个应该是最常见的一种了,不再赘述,直接按照转移方程来进行: 按最普通的方式就是,直接构造二维矩阵 ...

  6. 最长公共子序列(LCS)、最长递增子序列(LIS)、最长递增公共子序列(LICS)

    最长公共子序列(LCS) [问题] 求两字符序列的最长公共字符子序列 问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字 ...

  7. 2.16 最长递增子序列 LIS

    [本文链接] http://www.cnblogs.com/hellogiser/p/dp-of-LIS.html [分析] 思路一:设序列为A,对序列进行排序后得到B,那么A的最长递增子序列LIS就 ...

  8. LIS 最长递增子序列

    一.最长公共子序列 经典的动态规划问题,大概的陈述如下: 给定两个序列a1,a2,a3,a4,a5,a6......和b1,b2,b3,b4,b5,b6.......,要求这样的序列使得c同时是这两个 ...

  9. hunnu 11313 无重复元素序列的最长公共子序列转化成最长递增子序列 求法及证明

    题目:http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11313 湖师大的比赛,见我的另一篇水题题解,这里要说的 ...

随机推荐

  1. Android 自定义ListView单击事件失效

    因为自带的listView不能满足项目需求,通过实现自己的Adapter去继承ArrayAdapter 来实现自定义ListView的Item项目. 出现点击ListView的每一项都不会执行setO ...

  2. c/c++ 标准顺序容器 之 push_back,push_front,insert,emplace 操作

    c/c++ 标准顺序容器 之 push_back,push_front,insert,emplace 操作 关键概念:向容器添加元素时,添加的是元素的拷贝,而不是对象本身.随后对容器中元素的任何改变都 ...

  3. [UGUI]游戏中的Tips贴图标边缘显示(贴边)

    Tips贴图标边缘显示 图左:当左边宽度不足于容纳Tips时,Tips放在右侧显示,顶和图标对齐 图右:当左边宽度足够容纳Tips时,Tips放在左侧显示,顶和图标对齐 适应需求:当图标和Tips是在 ...

  4. xss挑战之旅wp

    Level 1  -  180831 第一关很简单,开胃菜 payload: http://localhost/xss_game/level1.php?name=test123<script&g ...

  5. [WeChall] Training: Encodings I (Training, Encoding)

    Training: Encodings I (Training, Encoding) We intercepted this message from one challenger to anothe ...

  6. Maven将中央仓库修改为阿里云的仓库地址

    <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexu ...

  7. WPF设计の自定义窗体

    效果图如下: 实现思路: 1.继承Window类 2.为自定义的CustomWindow类设计窗体样式(使用Blend很方便!) 3.为窗体增加最大最小化和关闭按钮,并实现鼠标拖拽改变窗体大小(使用D ...

  8. git 冲突解决的方法

    版权声明:本文为博主原创文章,未经博主同意不得转载. 新博客地址:www.atomicdevelop.com https://blog.csdn.net/believer123/article/det ...

  9. centos7下如何隐藏nginx的版本号

    我们在访问nginx的时候会暴露nginx的版本号,如何将这些版本号隐藏呢? 其实隐藏版本号非常简单 在nginx的配置文件中添加一个server——tokens  off:参数就可以了,下面进行操作 ...

  10. js 文件引用传递参数

    每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code (function() {var hm = document.createElement(&q ...