最长递增子序列(lis)最长公共子序列(lcs) 最长公共上升子序列(lics)
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)的更多相关文章
- UVa 10534 Wavio Sequence (最长递增子序列 DP 二分)
Wavio Sequence Wavio is a sequence of integers. It has some interesting properties. · Wavio is of ...
- 51nod 1218 最长递增子序列 V2(dp + 思维)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1218 题解:先要确定这些点是不是属于最长递增序列然后再确定这 ...
- 最长公共子序列(LCS)和最长递增子序列(LIS)的求解
一.最长公共子序列 经典的动态规划问题,大概的陈述如下: 给定两个序列a1,a2,a3,a4,a5,a6......和b1,b2,b3,b4,b5,b6.......,要求这样的序列使得c同时是这两个 ...
- 算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
出处 http://segmentfault.com/blog/exploring/ 本章讲解:1. LCS(最长公共子序列)O(n^2)的时间复杂度,O(n^2)的空间复杂度:2. 与之类似但不同的 ...
- 最长连续公共子序列(LCS)与最长递增公共子序列(LIS)
最长公共子序列(不连续) 实际问题中也有比较多的应用,比如,论文查重这种,就是很实际的一个使用方面. 这个应该是最常见的一种了,不再赘述,直接按照转移方程来进行: 按最普通的方式就是,直接构造二维矩阵 ...
- 最长公共子序列(LCS)、最长递增子序列(LIS)、最长递增公共子序列(LICS)
最长公共子序列(LCS) [问题] 求两字符序列的最长公共字符子序列 问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字 ...
- 2.16 最长递增子序列 LIS
[本文链接] http://www.cnblogs.com/hellogiser/p/dp-of-LIS.html [分析] 思路一:设序列为A,对序列进行排序后得到B,那么A的最长递增子序列LIS就 ...
- LIS 最长递增子序列
一.最长公共子序列 经典的动态规划问题,大概的陈述如下: 给定两个序列a1,a2,a3,a4,a5,a6......和b1,b2,b3,b4,b5,b6.......,要求这样的序列使得c同时是这两个 ...
- hunnu 11313 无重复元素序列的最长公共子序列转化成最长递增子序列 求法及证明
题目:http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11313 湖师大的比赛,见我的另一篇水题题解,这里要说的 ...
随机推荐
- UGUI自定义组件之Image根据Text大小自动调整
需求分析 在之前的文章中,介绍到可以使用UGUI自带的ContentSizeFitter组件,进行Button根据Text的长度自适应, UGUI ContentSizeFitter之Button根据 ...
- java基础编程练习
1.编写程序实现对给定的 4 个整数从大到小的顺序排列. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...
- Linux 小知识翻译 - 「邮件服务器」
这次聊聊「邮件服务器」. 邮件服务器上通常会运行2个服务端软件,「SMTP服务器」和「POP服务器或者IMAP服务器」. 这2个东西,也许使用邮件客户端的人立马就明白了.因为设置邮件客户端的时候,需要 ...
- C语言 求两数的最大公约数和最小公倍数
//作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ #include<stdio.h> //最大公约数 int gys(int x,int ...
- Java基础知识点(四)
前言:记录Java基础知识点,方便熟悉与掌握. 1.面向对象的"六原则一法则" “六原则一法则”:单一职责原则.开闭原则.依赖倒转原则.里氏替换原则.接口隔离原则.合成聚合复用原则 ...
- 「APIO2017」商旅
「APIO2017」商旅 题目描述 在广阔的澳大利亚内陆地区长途跋涉后,你孤身一人带着一个背包来到了科巴.你被这个城市发达而美丽的市场所深深吸引,决定定居于此,做一个商人.科巴有 \(N\) 个集市, ...
- 【BZOJ2117】 [2010国家集训队]Crash的旅游计划
[BZOJ2117] [2010国家集训队]Crash的旅游计划 Description 眼看着假期就要到了,Crash由于长期切题而感到无聊了,因此他决定利用这个假期和好友陶陶一起出去旅游. Cra ...
- Leetcode:0002(两数之和)
LeetCode:0002(两数之和) 题目描述:给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表.你可以假设除了数字 0 之外,这两 ...
- 深入学习vue指令,自定义指令解决开发痛点
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code v-model指令 vue.js的定义是一个mvvm框架,将它发挥到极致能够极大的提升 ...
- AI 概率图模型
概率图模型(Probabilistic Graphical Model) 有向图模型 信念网络 贝叶斯网络 无向模型 马尔科夫随机场 马尔科夫网络