单调递增子序列(二)时间限制:1000ms | 内存限制:65535KB难度:4描述给定一整型数列{a1,a2...,an}(0using namespace std;const int maxn=100100;const int INF=1e9;int pos;int D[maxn];int Bi...
分类:
其他好文 时间:
2015-05-15 10:36:46
阅读次数:
98
题目: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
刚开始做这题的时候,以为是简单的动态规划,后来提交之后发现超时了,看到了N可以达到100000,用简单的动态规划,时间复杂度达到了N^2,明显会超时。
想了挺久的,还是不知道怎么做,百度了一下,才知道了原来运用二分搜索,把问题简化成类似排序,时间复杂度为logN,就不会超时了。
下面是AC的代码,看注释可以很容易理解的。如说的有错,欢迎指正。
#include
#include
#i...
分类:
其他好文 时间:
2015-04-15 19:36:33
阅读次数:
92
单调递增子序列(二)时间限制:1000 ms | 内存限制:65535 KB 难度:4描述给定一整型数列{a1,a2...,an}(0 2 #include 3 const int MAX = 100000 + 10; 4 using namespace std; 5 int a[MAX], dp....
分类:
其他好文 时间:
2015-01-16 18:30:17
阅读次数:
127
单调递增子序列(二)
时间限制:1000 ms | 内存限制:65535 KB
难度:4
描述
给定一整型数列{a1,a2...,an}(0
如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。
输入有多组测试数据(
每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的下一行里有n个整数,表示...
分类:
其他好文 时间:
2014-12-06 01:29:54
阅读次数:
254
单调子序列包含有单调递增子序列和递减子序列,不失一般性,这里只讨论单调递增子序列。首先,从定义上明确我们的问题。给定序列a1, a2, …, an,如果存在满足下列条件的子序列ai1Lj(i=Lm,那么Lm+1=ai,m=m+1 (其中m是当前见到的最大的L下标)(3) Ls 2 int LMS (...
分类:
其他好文 时间:
2014-11-20 20:12:43
阅读次数:
273
http://zju.acmclub.com/index.php?app=problem_title&id=1&problem_id=1911
最长单减子序列、最长单增子序列、相继元素之间满足某种条件(例如绝对值之差不超过d)的最长子序列等,都是一个类型的动态规划。
下面给出一个n平方级别的基本算法。
思路:定义dp[i]代表A[i:n]中,以A[i]为开头的最长单增序列的长度。
从A...
分类:
其他好文 时间:
2014-11-20 13:42:51
阅读次数:
160
普通的思路是O(n2)的复杂度,这个题的数据量太大,超时,这时候就得用nlogn的复杂度的算法来做,这个算法的主要思想是只保存有效的序列,即最大递增子序列,然后最后得到数组的长度就是最大子序列。比如序列7 8 9 1 2 3 来说, 就是先把第一个数输入到数组中,然后继续输入后面的数,每输入一个数都...
分类:
其他好文 时间:
2014-11-17 19:22:37
阅读次数:
236
题目:hdoj 5087 Revenge of LIS II
题意:很简单,给你一个序列,让你求第二长单调递增子序列。
分析:其实很简单,不知道比赛的时候为什么那么多了判掉了。
我们用O(n^2)的时间求单调递增子序列的时候,里面在加一层循环维护sum数组,表示前面有几个可以转移当当前,求前面sum的和保存到当前。
最后求最后一个sum【n-1】是否为1就ok,为1的话在...
分类:
其他好文 时间:
2014-11-03 10:16:32
阅读次数:
124
单调递增子序列(二)时间限制:1000ms | 内存限制:65535KB难度:4描述给定一整型数列{a1,a2...,an}(0 2 #include 3 #include 4 int riseSubString(int a[], int n) 5 { 6 int i,l,r,m,s[100...
分类:
其他好文 时间:
2014-11-01 20:25:00
阅读次数:
232