线段树_树状数组
文章平均质量分 79
蝶翼的罪
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj 3321 Apple Tree DFS时间戳预处理+树状数组
分析:本题的操作乍一看很像树状数组,单点更新,查询连续子序列和。多完美,可仔细一想不对,如何用一种序列来表示枝叉呢,这是一个麻烦的问题。换个角度想想,如果表示一个树枝上所有节点呢。答案是有的,dfs。从根开始深搜这棵树,访问每个点并加上时间戳。那么一个树枝上的所有节点就可以用时间表示,就是访问树枝的根的时间和后的时间之间。但是要注意的是,每个点都可以用两个时间表示,dfs前的时间和dfs后的时间。原创 2013-06-11 22:52:13 · 1052 阅读 · 0 评论 -
hdu 1540 Tunnel Warfare 线段树
这题目典型的线段树做法,但是网上很多人对每个节点都记录了3个值,左端起最长,右端起最长和中间最长,实际没有必要。 因为这题本质上我理解为是求所在序列的长度,举例,n为7,d 3 d 5,那么4所在的长度为1,1,2,3所在的长度为3。谈不上最大最小。只需要维护左端起最长的连续区间和右端起最长的连续区间即可。 对于查询,Q k,如果k在左儿子的右区间内并且k在右儿子的左区间内,那么就返回原创 2013-06-07 10:43:13 · 523 阅读 · 0 评论 -
poj 2761 Feed the dogs 平衡树,线段树,树状数组
分析:这题就是求区间第k小数,但是这题和poj2104的区别就是,2104的区间是可以完全包含的,就是说某个点进出区间不止一次,所以平衡树和线段树是超时的,只能用划分树或者归并树,这题是可以用平衡树解的。先把区间从左到右排序,然后依次插入平衡树,线段树,然后利用树的性质在log n 内找到第k小。这题也可以用树状数组解,但是需要二分第k小,我一直觉得二分不是最好的做法,考虑能不能在log n内用树原创 2013-06-08 11:46:26 · 1027 阅读 · 0 评论 -
(重温)poj 2528 Mayor's posters 线段树 染色+离散化
这题算是比较经典的线段染色问题了, 但是我在POJ上很多人数据有问题,或者说无限WA,我刚原创 2014-05-13 20:09:53 · 650 阅读 · 0 评论 -
poj2482 Stars in Your Window hdu 5091 Beam Cannon 线段树 扫描线
今天把线段树神题2482过了,然后把弱化版的28原创 2014-11-04 23:19:22 · 965 阅读 · 4 评论 -
hdu 5107 K-short Problem 线段树扫描线
分析:题意是给一个二维平面,平面有一些点给出坐标x,y和高度h,然后原创 2014-11-20 23:50:40 · 791 阅读 · 0 评论 -
hdu5125 magic balls BIT求LIS
分析:我们可以用dp[i][j]表示i为结尾的使用了j点体力的最大值,因为分a和b,所以再加1维,dp[i][j][0]表示a,dp[i][j][1]表示b,然后状态转移方程是这样的 dp[i]j[j][0] = max{dp[k][j][0], k dp[i][j][1] = max{dp[k][j-1][0], k 但是这样时间复杂度是指数级的 然后我们可以用把a,b数组离散化后用原创 2014-12-01 23:58:16 · 831 阅读 · 0 评论
分享