模板 最长公共递增子序列
2015-05-03 09:37
429 查看
【模板】最长递增公共子序列
二维
优化成一维
二维
#include <stdio.h> #include <algorithm> #include <string.h> using namespace std; int n,m,a[505],b[505],dp[505][505]; int LICS() { int MAX,i,j; memset(dp,0,sizeof(dp)); for(i = 1; i<=n; i++) { MAX = 0; for(j = 1; j<=m; j++) { dp[i][j] = dp[i-1][j]; if(a[i]>b[j] && MAX<dp[i-1][j]) MAX = dp[i-1][j]; if(a[i]==b[j]) dp[i][j] = MAX+1; } } MAX = 0; for(i = 1; i<=m; i++) if(MAX<dp [i]) MAX = dp [i]; return MAX; }
优化成一维
#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; int a[505],b[505],dp[505],n,m; int LICS() { int i,j,MAX; memset(dp,0,sizeof(dp)); for(i = 1; i<=n; i++) { MAX = 0; for(j = 1; j<=m; j++) { if(a[i]>b[j] && MAX<dp[j]) MAX = dp[j]; if(a[i]==b[j]) dp[j] = MAX+1; } } MAX = 0; for(i = 1; i<=m; i++) if(MAX<dp[i]) MAX = dp[i]; return MAX; }
相关文章推荐
- CSU 1120 病毒(经典模板例题:最长公共递增子序列)
- 最长公共序列 最长递增子序列 最长公共递增子序列 模板
- hdu1423(最长公共递增子序列)
- dp之最长递增子序列模板poj3903
- hdu 1423 最长公共递增子序列
- 编辑距离,最长公共子序列,最长公共子串,最长递增子序列
- 算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
- 最大子序列最长递增子序列最长公共子串最长公共子序列
- CodeForces 10D. LCIS 最长公共上升子序列模板题 + 打印路径
- HDU1423 Greatest Common Increasing Subsequence(最长公共递增子序列)
- poj 2127 dp(最长公共递增子序列)
- hdu 451(最长公共递增子序列)
- hdu 1423 Greatest Common Increasing Subsequence_LICS(最长公共递增子序列)
- 编辑距离,最长公共子序列,最长公共子串,最长递增子序列
- hdu1423Greatest Common Increasing Subsequence(最长公共递增子序列)
- Greatest Common Increasing Subsequence hdu1423 最长公共递增子序列
- 模板 最长递增子序列
- 最长公共递增子序列
- hdu 1423最长公共递增子序列
- CodeForces 10D. LCIS 最长公共上升子序列模板题 + 打印路径