算法导论读书笔记(18)目录最长公共子序列步骤1:描述最长公共子序列的特征步骤2:一个递归解步骤3:计算LCS的长度步骤4:构造LCSLCS问题的简单Java实现最长公共子序列某给定序列的子序列,就是将给定序列中零个或多个元素去掉后得到的结果。其形式化定义如下:给定一个序列 
X = ,另一个序列 Z...
                            
                            
                                分类:
其他好文   时间:
2014-06-10 16:27:04   
                                阅读次数:
273
                             
                    
                        
                            
                            
                                DP求解。对Blocks的先按照X降级,再按照Y降级排序,可以转化为最长公共子序列问题,即求子序列权值之和最大。
#include 
#include 
#include 
using namespace std;
#define MAX_SIZE 300
struct Block{
    int x;
    int y;
    int height;
};
int nums...
                            
                            
                                分类:
其他好文   时间:
2014-06-03 04:39:44   
                                阅读次数:
223
                             
                    
                        
                            
                            
                                最大连续子序列(HDU1003,1231)
最大递增子序列和,sum[i]=max(sum[j])+a[i],j
最长公共子序列,LCS经典算法(HDU1159)。
题解:
实际上,我没看出hdu1003和1231的本质差别,形式上的差别就是记载的东西不一样,一个是记载下标,一个是记载元素。基本就是那么回事吧。很多算法书在讨论时效都会拿这个例子来说明,让大家看到算法的力量,从一个弱渣算法到...
                            
                            
                                分类:
其他好文   时间:
2014-06-03 04:19:10   
                                阅读次数:
279
                             
                    
                        
                            
                            
                                #include
#include
#include
using namespace std;
const int m=(int)1E8;
string s1,s2;
int f[2][5001]={0},g[2][5001]={0};
void init();
void work();
int my_max(int,int);
int main()
{
	freopen("lcs.in","r"...
                            
                            
                                分类:
其他好文   时间:
2014-05-26 04:07:17   
                                阅读次数:
305
                             
                    
                        
                            
                            
                                最长公共子序列问题LCS
  问题描述:
一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X= { x1, x2,…, xm},则另一序列Z= {z1, z2,…, zk}是X的子序列是指存在一个严格递增的下标序列 {i1, i2,…,
 ik},使得对于所有j=1,2,…,k有 Xij=Zj。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,...
                            
                            
                                分类:
其他好文   时间:
2014-05-25 06:26:52   
                                阅读次数:
229
                             
                    
                        
                            
                            
                                10192 最长公共子序列 
http://uva.onlinejudge.org/index.php?option=com_onlinejudge& 
Itemid=8&page=show_problem&category=114&problem=1133&mosmsg= 
Submission...
                            
                            
                                分类:
其他好文   时间:
2014-05-23 22:30:07   
                                阅读次数:
528
                             
                    
                        
                            
                            
                                时限:1000ms内存限制:200000K 
总时限:3000ms描述一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=,则另一序列Z=是X的子序列是指存在一个严格递增的下标序列 
,使得对于所有j=1,2,…,k有:Xij = Zj如果一个序列S即是A的子序列又是B的子...
                            
                            
                                分类:
其他好文   时间:
2014-05-23 05:07:19   
                                阅读次数:
283
                             
                    
                        
                            
                            
                                动态规划法
经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。
为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。
【问题】 求两字符序列的最长公共字符子...
                            
                            
                                分类:
其他好文   时间:
2014-05-22 18:46:11   
                                阅读次数:
360
                             
                    
                        
                            
                            
                                问题描述
     最长公共子序列,英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。
  
    解决最长公共子序列,一种常用的办法,就是穷举法,组合出所有的情况,但是这样对于长序列的情况来说,是非常不实际。。
假设现在有...
                            
                            
                                分类:
其他好文   时间:
2014-05-21 13:55:35   
                                阅读次数:
260
                             
                    
                        
                            
                            
                                Description
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X =  another sequence Z =  is a subsequence of X if there exists a ...
                            
                            
                                分类:
其他好文   时间:
2014-05-21 10:58:39   
                                阅读次数:
237