![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构 线段树
捣乱天才
华东交通大学
展开
-
线段树-区间合并
数据解释:1、[0,9]这个区间最长的上升子序列是3 5 9 所以输出的答案是3。2、进过U 2 2 、U 6 11的操作 得到的序列为 7 7 2 3 5 9 11 8 1 8。3、[0,9]这个区间的最长上升子序列则为2 3 5 9 11 所以输出的答案为5。 题解:我们先来分析分析这题,单点更新,区间询问(数组dis[N]来表示)。平时我们写的线段树的区间求和的时候是直接区间进行相加,因为求和并没有限制。但是呢,在这里并不能直接去合并,因为有一个限制:“上升”。我们这样来分析下。给出两个原创 2015-03-13 19:25:22 · 758 阅读 · 0 评论 -
poj2828 Buy Tickets(线段树,单点更新)
题目链接:点这里!!!!题意:有N个人排队,每一个人都有一个val来对应,每一个后来人都会插入当前队伍前面有pos个人。要求把队伍最后的状态输出。(N题解:1、这道题我们按插入的顺序从后往前做就行,我们初始区间所有数都为1。2、我们假设当前的位置为pos,是不是代表在当前插入以前有pos个数在其前面,我们相当于从后往前插入时,求前缀和为pos+1的位置在哪里原创 2016-04-26 19:35:06 · 262 阅读 · 0 评论 -
hdu4288||codeforces-85d
题目链接:点这里!!!!题意:有三个操作(n1、add x往集合中加入x这个数2、del x删除集合里的x3、sum 集合的元素从小到大排序,a1题解:1、首先我们把所有数都离散,然后一一对应到线段树上,插入的话,直接插入到某个点上,删除也是如此。2、这样子就相当于我们在线段树上求答案,然后就是简单的区间合并。但是要注意的一点是两两合并原创 2016-04-27 16:42:17 · 265 阅读 · 0 评论 -
CodeforcesBeta Round #19 D. Points (线段树)
题目链接:点这里!!!!题意:有三种操作“add x y”往平面上添加(x,y)这个点,"remove x y",将平面上已经存在的点(x,y)删除,“find x y”找出平面上坐标严格大于(x,y)的点,如果有多个点找x最小的,再找y最小的;不存在的话输出-1。数据范围:操作数题解:1、这道题是五一之前写的,然后因为回家加上生了病就耽搁到现在才写完,才发现好原创 2016-05-05 20:27:54 · 317 阅读 · 0 评论 -
hdu4521 小明系列问题——小明序列(线段树)
题目链接:点这里!!!!!题意:有多组测试数据,每组数据的n和d表示,有n个数,求间距大于d的最长上升序列。题解:1、按权值从小到大排序,权值相同的时候按下标从大到小排序。2、线段树维护符合条件的上升子序列,然后去找当前情况在其前面符合间距的范围里找当前最长的上升子序列,再更新进去就可。代码:#include#include#原创 2016-05-05 22:10:40 · 457 阅读 · 0 评论 -
2016"百度之星" - 初赛(Astar Round2A)1003(hdu5692)dfs序+线段树
题目链接:点这里!!!!题意:中午题。题解:我们记录dis[x]表示0~x的路径长度。如果我们修改x的权值,x的子树全部都要修改,我们利用dfs序的话,我们相当于给一个区间的值加上某个值;然后询问的x的子树谁的权值最大,相当于区间询问最大值,我们用线段树维护下就可以了。代码:#include#include#include#in原创 2016-05-21 20:49:12 · 552 阅读 · 0 评论 -
Codeforces Round #343 (Div. 2) D. Babaei and Birthday Cake
题目链接:点这里!!!题意:(我直接简化了)给你一个长度为n的序列,然后叫你求一个单调递增的序列且他们的和最大为多少。(所有数都是正数)数据范围:n题解:直接线段树加离散化。假设当前的数为v[i](离散化后),我们去线段树里找小于v[i]中最大的值为vmax。然后在v[i]这个位置上直接更新v[i]+vmax,注意一下如果v[i]之前存在值,取max更新就可以了,然原创 2016-07-12 17:50:31 · 198 阅读 · 0 评论 -
hdu5700区间交(线段树)
题目链接:点这里!!!!!题意:小A有一个含有nn个非负整数的数列与mm个区间。每个区间可以表示为l_{i},r_{i}li,ri。它想选择其中kk个区间, 使得这些区间的交的那些位置所对应的数的和最大。数据范围:1题解:我们去枚举符合条件的区间的左端点i,然后把所有左端点小于等于i的区间的有端点加入到线段树里。我们要原创 2016-07-16 15:00:25 · 422 阅读 · 0 评论 -
hdu5828Rikka with Sequence(线段树)
题目链接:点这里!!!!题意:给你一个长度为n(n1 l r x [l,r]区间里的每个数加上x2 l r [l,r]区间里的每个数开根号3 l r 输出Al,Al+1...Ar之和数据范围:A[i]题解:1、我们发现一个数开根号最多开6次就会等于1,我们可以知道经过若干次操作后,序列会退化成若干段相等的数。2、根据“1”我们对于开根号操原创 2016-08-11 20:50:38 · 473 阅读 · 0 评论