码迷,mamicode.com
首页 > 其他好文 > 详细

近期计划

时间:2016-04-28 16:56:47      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

 背包(0/1背包,完全背包,多重背包,分组背包,简单依赖背包,复杂依赖背包转化为树形dp)

LIS 最长单调递增子序列

LCS 最长公共子序列

环形dp

树形dp

状态压缩dp

 单调dp

 

求LCS(最长公共子序列)的长度的nlogn算法可以通过转换为求一个数列的LIS。与动归的n^2复杂度相比。

假如说我要求数列“1 2 3 5 4”和“5 4 3 2 1”的LCS,那么可以求第二个序列中的每个元素在第一个序列中的位置。

“5”在第一个序列的第四个位置,“4”在第五个位置,“3”在第三个位置,“2”在第二个位置,“1”在第一个位置,所以只需要对“4 5 3 2 1”这个序列求LIS的长度即可求出相应的LCS。

求LIS可以参考我先前博客的二分法算法:

 

近期计划

标签:

原文地址:http://www.cnblogs.com/bytebull/p/5442791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!