首页 > 其他 > 详细

近期计划

时间:2016-04-28 16:55:22      阅读:111      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!