动态规划并不是一种算法,而是一种解决问题的思路。典型的动态规划问题,如最长公共子序列(LCS),最长单调子序列(LIS)等。 动态规划分为四个步骤: 这里以LCS为例,X={x1,x2,...,xi};Y={y1,y2,...,yj}。最长公共子序列Z={z1,z2,...,zk}; ①如果xi=y ...
分类:
其他好文 时间:
2017-09-14 13:14:59
阅读次数:
188
题目链接: http://acm.hit.edu.cn/hoj/problem/view?id=2372 题目描述: Recoup Traveling Expenses Submitted : 206, Accepted : 102 Submitted : 206, Accepted : 102 S ...
分类:
其他好文 时间:
2017-06-11 10:27:15
阅读次数:
253
(LIS Longest Increasing Subsequence)给定一个数列,从中删掉任意若干项剩余的序列叫做它的一个子序列,求它的最长的子序列,满足子序列中的元素是单调递增的。 例如给定序列{1,6,3,5,4},答案是3,因为{1,3,4}和{1,3,5}就是长度最长的两个单增子序列。处 ...
分类:
其他好文 时间:
2016-12-25 09:37:58
阅读次数:
301
1.问题描述:求一个正整数序列的最长单调自增子序列,子序列不要求是连续的。例如Input:55 2 4 3 1Output:22.算法复杂度是O(N*N)确定状态转移方程,设f[i]是以a[i]为结尾的最大值的子序列的长度,那么\[\max \{ f[i]\} \]的最大值就是要的结果。所以转移方程...
分类:
其他好文 时间:
2015-06-24 10:39:31
阅读次数:
117
题目:poj 1952 BUY LOW, BUY LOWER
题意:给出一个序列,先求最长单调递减子序列,然后求在子序列最长的情况下,不同的长度都为最长的的子序列的个数。(比如3,2,1和3,2,1属于相同,只能算一个)分析:首先用一个dp【i】表示到当前i点的最长子序列的长度
用dp2【i】表示最长为dp【i】的子序列的个数
然后dp【i】 = max(dp【j】)+1 (1<=j/****...
分类:
其他好文 时间:
2015-05-03 16:03:44
阅读次数:
146
最长单调子序列(O(n^2) 和 O(nlg(n))))...
分类:
其他好文 时间:
2015-03-16 14:39:54
阅读次数:
177
多种方法,我用DP做的。
我当成的 最长下降子序列做的。 问了下其他人,有树形DP的,有差分约束用最短路的。
还有当作 二维的背包问题的。
最长单调子序列,长宽高 x,y,z 分别枚举成六个。然后排序,找最长单调子序列即可。
#include
#include
#include
#include
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2014-11-27 10:48:57
阅读次数:
228
本文给出了如下题目的参考解答,虽然方法并不是最优,但详细的分析具有很好的参考价值!题目:已知一个序列,由随机数构成,求其最长单调子序列。要求: 单调分严格和不严格两种情况,并分别求解并输出一个最长单调子序列和所有符合要求的子序列。...
分类:
其他好文 时间:
2014-07-01 08:28:41
阅读次数:
303