首先线段树每一个节点包含:[b,e],lmax,rmax,max;其中lmax表示从左端点开始连续的最长的增序列长度,rmax表示从e端点开始向左连续的最长下降序列长度,max表示当前区间的连续递增的最长序列长度。对单个节点插入时的信息维护如下: (1) if 左儿子的右端点的值<右儿子的左端点的值 ...
分类:
其他好文 时间:
2016-08-12 13:05:37
阅读次数:
164
首先定义一下LIS问题:给定一个长度为n的序列a,求它的最长上升子序列的最大长度。 方法一:(n^2)。 令f[i]为以i结尾的最长上升子序列的长度,当且仅当j满足a[j]<a[i](1≤j≤i≤n)时,f[i]从f[j]转移而来。 这个状态转移方程易构造:f[j] = MAX(f[i]) + 1( ...
分类:
其他好文 时间:
2016-07-11 00:49:32
阅读次数:
169
题目链接:传送门 题目大意:给你n个数,m个操作。操作有两种:1.U x y 将数组第x位变为y 2. Q x y 问数组第x位到第y位连续最长子序列的长度。对于每次询问,输出一个答案 题目思路:线段树单点修改区间合并 这道题题目好在对pushup的理解,我们在向上更新的时候有注意情况的区分 1.如 ...
分类:
其他好文 时间:
2016-06-19 22:43:20
阅读次数:
279
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3308 题目很好懂,就是单点更新,然后求区间的最长上升子序列。 线段树区间合并问题,注意合并的条件是a[mid + 1] > a[mid],写的细心点就好了。 ...
分类:
其他好文 时间:
2016-05-28 23:23:21
阅读次数:
347
LCIS Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6166 Accepted Submission(s): 2675 Problem De ...
分类:
其他好文 时间:
2016-05-20 00:51:23
阅读次数:
178
定义状态 F[i][j]表示以a串的前i个整数与b串的前j个整数且以b[j]为结尾构成的LCIS的长度。 状态转移方程: 现在我们来说为什么会是这样的状态转移方程呢? 对于①,因为F[i][j]是以b[j]为结尾的LCIS,如果F[i][j]>0那么就说明a[1]..a[i]中必然有一个整数a[k] ...
分类:
其他好文 时间:
2016-05-13 12:05:08
阅读次数:
195
LCIS Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6069 Accepted Submission(s): 2635 Problem De ...
分类:
其他好文 时间:
2016-04-04 13:05:22
阅读次数:
147
题目链接 给一个数列, 在里面选出一些数组成一个对称的数列, 数的顺序不能打乱。 使得左半边是一个严格递增的数列, 右边递减, 并且a[i] = a[n-i+1]。 就是一个对称的LCIS..
分类:
其他好文 时间:
2016-03-14 20:19:37
阅读次数:
254
推荐一篇炒鸡赞的blog。 以下代码中有打印路径。 #include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <queue> #include <
分类:
其他好文 时间:
2016-03-03 13:09:09
阅读次数:
130
题目链接:hdu 3308 LCIS 题目大意:给定一个序列,两种操作: Q l r:查询区间l,r中的最长连续递增序列长度U p x:将位置p上的数改成x 解题思路:线段树上的区间合并,这是在左右子树合并的时候要推断一下是否满足递增就可以。 #include <cstdio> #include <
分类:
其他好文 时间:
2016-02-07 17:32:00
阅读次数:
247