supermemo bzoj-1895 Pku-3580 题目大意:给定一个n个数的序列,需支持:区间加,区间翻转,区间平移,单点插入,单点删除,查询区间最小值。 注释:$1\le n\le 6.1\cdot 10^6$。 想法: 这数据范围给的我真是醉了。 显然用平衡树,这里用非旋转Treap,题 ...
分类:
其他好文 时间:
2018-09-28 00:02:47
阅读次数:
215
线段树节点维护区间最小值,查找时优先从左侧的区间寻找. 每一次循环都在树中不停寻找第一个小于等于当前持有数的值,然后抹去,直到找不到为止. include include include include define lson rt 1; build(Lson); build(Rson); push ...
分类:
其他好文 时间:
2018-09-14 19:54:35
阅读次数:
183
https://nanti.jisuanke.com/t/30996 线段树维护区间最小值,查询的时候优先向左走,如果左边已经找到了,就不用再往右了。 一个房间装满则把权值标记为INF,模拟一遍,注意考虑 一个月内装满多个房间 和 装满所有房间后不用再购买 的情况。 代码: include incl ...
分类:
其他好文 时间:
2018-09-02 10:26:46
阅读次数:
184
链接:https://nanti.jisuanke.com/t/30996 题意:很简单,懒得讲了 思路:我们可以直接用线段树求出区间最左边小于某个数的数,线段树存1-n房间的灯数,维护区间最小值,查询的时候优先向左走就好了, 一个房间满了我们就用线段树将这个房间的值更新为inf,然后模拟下就好了。 ...
分类:
其他好文 时间:
2018-09-01 20:32:05
阅读次数:
225
1 /* 2 Source :CF689D 3 题意:给出a,b两个长度为n的数组,问有多少个区间满足max(a[l,r])==min(b[l,r]) len(a) 10 using namespace std; 11 12 typedef long long LL; 13 const int MA... ...
分类:
其他好文 时间:
2018-08-14 23:59:50
阅读次数:
371
RMQ问题: 给定一个序列,询问一个区间和(区间最小值 / 最大值) ...
分类:
编程语言 时间:
2018-08-11 17:48:20
阅读次数:
158
题目中没有明说会爆int和longlong 的精度,但是在RNG函数中不用unsigned int 会报精度,导致队友debug了很久... 根据每次生成的l,r,v对区间更新m次,然后求 i*ai的异或和。挺裸的线段树,只要ai<v就更新ai。在线段树结点中维护区间最小值,每次更新时,如果区间最小 ...
分类:
其他好文 时间:
2018-08-07 10:18:27
阅读次数:
115
适用范围: 用于查询区间最小值。 时间复杂度 $$ O(n log_2n) $$ 建树: 查询: cpp int query(int ql,int qr,int l,int r,int o){ //[ql,qr]为查询的区间,[l,r]为线段树结点的区间,o为线段树结点编号 if (ql==l && ...
分类:
其他好文 时间:
2018-07-12 20:12:03
阅读次数:
118
分析: 首先考虑如何计算整个数组有多少个good区间 容易发现一个区间是good区间当且仅当max-min-len=-1,且任意区间max-min-len>=-1 我们可以枚举右端点,然后维护前面每个位置到当前右端点的max-min-len值,容易发现我们只需要维护区间最小值和最小值的个数就行了,于 ...
分类:
其他好文 时间:
2018-07-04 01:18:49
阅读次数:
368
Given a collection of intervals, merge all overlapping intervals. Example 1: Example 2: 这道题看例子就观察到如果是按照区间最小值排过序的话会比较好做,不然的话找来找去复杂度应该会很高吧,排过序最多也就是O(nlo ...
分类:
编程语言 时间:
2018-07-01 00:26:23
阅读次数:
157