Algorithm_LIS
文章平均质量分 81
niuox
这个作者很懒,什么都没留下…
展开
-
免费午餐题解
题目描述为了增加顾客,Sally的店铺决定提供免费午餐,顿时门庭若市,但是不久Sally的原材料不足了….因此Sally决定公布一项决定:凡是来本店吃免费午餐的,一天吃能吃一次,吃的数量必须比上一次吃的少, 点的必须在上一次后面,且免费午餐将只有N个种类任君选择,为了能吃到最多的免费午餐,你将如何安排每日吃的数量呢?输入格式第一行一个数N,表示免费午餐的种类(0第二行N原创 2012-06-29 18:09:20 · 1738 阅读 · 0 评论 -
POJ 1458题解
这是一道更为典型的LCS题目,不同与以往的解法,我们不用DP来做,直接用转换为LIS的思路来做。题目:http://poj.org/problem?id=1458代码:#include #include #include#includeusing namespace std;//二分法求最长单调递增子序列关键字下标(<)int binarySearch4(in原创 2012-07-03 10:01:35 · 901 阅读 · 0 评论 -
LCS转LIS(大地的秘密题解)
求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”这个序列求L原创 2012-07-02 21:16:36 · 2732 阅读 · 0 评论 -
飞翔题解
本题也是求LIS。题目描述背景鹰最骄傲的就是翱翔,但是鹰们互相都很嫉妒别的鹰比自己飞的快,更嫉妒其他的鹰比自己飞行的有技巧。于是,他们决定举办一场比赛,比赛的地方将在一个迷宫之中。题目这些鹰的起始点被设在一个N*M矩阵的左下角map[1,1]的左下角。终点被设定在矩阵的右上角map[N,M]的右上角,有些map[i,j]是可以从中间穿越的。每一个方格的边长都是1原创 2012-07-06 12:38:17 · 1232 阅读 · 0 评论 -
求最长不增子序列、最长单调递减子序列、最长不降子序列、最长单调递增子序列长度
免费午餐问题的引申:代码如下:#include #include using namespace std;int total = 0;vector v1;//原始数据集合vector v2;//最长不增子序列暂时集合vector v3;//最长单调递减子序列暂时集合vector v4;//最长不降子序列暂时集合vector v5;//最长单调递增子序列暂时集合//原创 2012-07-01 11:59:53 · 2713 阅读 · 0 评论 -
单调递增子序列(Longest-Monotonically-Sequence)
本文转自:http://blog.csdn.net/fflush/article/details/1503841单调子序列包含有单调递增子序列和递减子序列,不失一般性,这里只讨论单调递增子序列。首先,从定义上明确我们的问题。给定序列a1, a2, …, an,如果存在满足下列条件的子序列ai1i2im, (其中i1即称为一个原序列的长度为m的单调递增子序列,那么,现在的问题是我们要找出原创 2013-03-23 19:21:17 · 1042 阅读 · 0 评论 -
Hoj 1288 Bridging Signals
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=1288标记一下LIS的DP解法:其中len[i]代表以array[i]结尾的单调递增字串的最大值。(标记一下,有些不对,以后再改)#include #include #include #include #include #include using namespace std;原创 2013-01-29 20:03:21 · 745 阅读 · 0 评论