RMQ问题: 给定一个序列,询问一个区间和(区间最小值 / 最大值) ...
分类:
编程语言 时间:
2018-08-11 17:48:20
阅读次数:
158
传送门:>Here< 题意:求区间最大子段和 $N \leq 50000$ 包括多组询问(不需要支持修改) 解题思路 线段树的一道好题 我们可以考虑,如果一组数据全部都是正数,那么问题等同于是查询区间和。然而如果有负数的存在,问题就不一样了 考虑对于每一个节点,维护四个信息:ls(代表当前区间顶着左 ...
分类:
其他好文 时间:
2018-08-07 11:03:59
阅读次数:
164
题意:给出一些花的开放时间段,然后询问某个时间点有几朵花正在开放。 由于ti<1e9,我们需要先将时间离散化,然后将时间点抽象为一个数组中的点,显然,我们需要进行区间更新和单点查询,可以考虑线段树与树状数组两种做法,一般的,树状数组是用来维护区间和与单点修改的,那么,如何通过树状数组进行区间更新和单 ...
分类:
编程语言 时间:
2018-08-05 23:26:02
阅读次数:
202
我们把方差公式展开 所以只需要维护一个区间平方和和区间和 当我们更新一个区间加时 所以pushdown就很好写了 具体见代码 ...
分类:
其他好文 时间:
2018-08-05 13:08:55
阅读次数:
345
Blocks bzoj-2086 Poi-2010 题目大意:题目链接。 注释:略。 想法:首先,不难发现,如果连续的一段数的平均值不小于输入的k的话,这段数是满足题意的。 所以,我们再次简化一下:将每个数都减去k,即求极大区间,使得区间和为正。 将所有数的前缀和自尾至头压进单调栈,然后左指针遍历1 ...
分类:
其他好文 时间:
2018-08-05 10:26:45
阅读次数:
145
hdu 6315 题意:对于一个数列a,初始为0,每个a[ i ]对应一个b[i],只有在这个数字上加了b[i]次后,a[i]才会+1。 有q次操作,一种是个区间加1,一种是查询a的区间和。 思路:线段树,一开始没用lazy,TLE了,然后开始想lazy的标记,这棵线段树的特点是,每个节点维护 :一 ...
分类:
其他好文 时间:
2018-07-26 22:05:38
阅读次数:
146
Distinct Values PS:思路巨明显,就是代码写不出,总想着一次更新一条线段。这里用一个set,存的是当前能用的数的。怎么去更新set,记录上一个区间的左右端点 l , r ,然后类似于莫队的写法。。。。看代码吧。注意上一个区间和当前区间没有公共端点时要特判!!!,也就是代码中的 if ...
分类:
其他好文 时间:
2018-07-24 23:51:33
阅读次数:
280
题意: 给n和k,让你用不小于 k 个不同的数字构成一个长度为n的序列,使得序列中不同的区间和的数目最小。 n,k<=500 k-1个数填一些数字的一正一负,这样有些区间和为0。 剩下的都填0。 ...
分类:
其他好文 时间:
2018-07-24 14:52:38
阅读次数:
125
给出一个区间的集合,请合并所有重叠的区间。 示例 1: 示例 2: 将数组按照start进行排序,先把第一个区间扔进返回数组,然后遍历剩下的区间,如果该区间和返回数组尾部的区间重叠,就把它们合并,不然就把该区间扔进返回数组。 ...
分类:
编程语言 时间:
2018-07-21 19:51:04
阅读次数:
211
题目链接:https://vjudge.net/contest/182746#problem/B 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissio ...
分类:
其他好文 时间:
2018-07-21 00:10:45
阅读次数:
209