LIS && LCS && LCIS
来源:互联网 发布:男士 护肤品牌 知乎 编辑:程序博客网 时间:2024/05/21 05:55
1、LIS:一个a序列,求它的最大上升子序列的最大长度
2、LCS:两个序列a和b,求他们最大公共子序列的长度
3、LCIS:两个序列a、b,求他们最大公共上升子序列长度
【求长度并输出序列:CF10D. LCIS】
#include <bits/stdc++.h>using namespace std;int a[1010], b[1010];int f[1010], fa[1010];int maxn, id;int LCIS(int n, int m) {memset(f, 0, sizeof(f));for(int i = 1; i <= m; i++) fa[i] = 0;for(int i = 1; i <= n; i++) {int k = 0;for(int j = 1; j <= m; j++) {if(a[i] == b[j] && f[j] < f[k] + 1) {f[j] = f[k] + 1;fa[j] = k;}if(a[i] > b[j] && f[j] > f[k]) k = j;}}maxn = -1, id = -1;for(int j = 1; j <= m; j++) {if(maxn < f[j]) {maxn = f[j];id = j;}}}void dfs(int x) {if(fa[x] == 0) {printf("%d ", b[x]);return;}dfs(fa[x]);printf("%d ", b[x]);}int main() {int n, m;scanf("%d", &n);for(int i = 1; i <= n; i++) scanf("%d", &a[i]);scanf("%d", &m);for(int j = 1; j <= m; j++) scanf("%d", &b[j]);LCIS(n, m);printf("%d\n", maxn);if(maxn) {dfs(id);printf("\n");}return 0;}
0 0
- LCS/LIS/LCIS
- LIS LCS LCIS
- LCS LIS LCIS 算法
- LIS && LCS && LCIS
- LCS,LCIS,LIS模板
- LCS LIS LCIS学习、
- LCS/LIS/LCIS 模板总结
- LCS LIS LCIS 字符串编辑距离 专题
- LIS LCS n^2和nlogn解法 以及LCIS
- ***转载 LIS LCS n^2和nlogn解法 以及LCIS
- LIS LCS n^2和nlogn解法 以及LCIS
- 线性DP总结(LIS,LCS,LCIS,最长子段和)
- LIS LCS LCIS (主要过一遍,重在做题)
- LCS && LIS
- LIS+LCS~
- LCS?LIS
- LIS&&LCS
- LIS,LCS,一道LIS题
- LeetCode 52. N-Queens II 题解(C++)
- localhost & 127.0.0.1
- Linux下VNC/QT/OPENCV移植——i.MX6平台
- Java 静态变量分析
- bash环境配置
- LIS && LCS && LCIS
- python入门--基本概念
- linux select函数用法
- dom4j中branch,node,element区别
- NULL是什么?
- 多态基类声明virtual析构函数
- LightOJ1274(组合数)
- Android MD5
- Spring Boot / Spring MVC 入门实践 (四) :需求记录网站的实现