随笔分类 - 数据结构
摘要:维护1边的联通块和2边的联通块,合并的时候直接启发式合并。 cdqz的大爷好强啊。
阅读全文
摘要:讲个笑话,这个题很休闲的。 大概是这样的,昨天看到这个题,第一眼星际把题目看反了然后感觉这是个傻逼题。 后来发现不对,这个修改一次的影响是很多的,可能导致一个数突然可以被改,也可能导致一个数不能被改。 大概就是一个不断拔高,最后拔得跟区间最大值一样高的过程。 后来开始想做法,感觉是不是可以维护一下最
阅读全文
摘要:原题意看的挺迷糊的,后来看了http://blog.csdn.net/YxuanwKeith/article/details/52351335大爷的题意感觉清楚的多…… 做法也非常显然了,用树剖维护后缀自动机的parent树。 修改操作看成对每一个状态的right集合全都访问次数+1 询问同理。 然
阅读全文
摘要:考虑欧拉函数的性质,60很小,压位存下线段树每个节点出现质数。
阅读全文
摘要:如题,首先可以考虑相对大小是不变的。 那么先sort,之后每次在线段树上二分即可。
阅读全文
摘要:同之前那道由乃题,可以认为由乃题是这题的特殊情况…… 维护方法是同样的,维护区间和,区间平方和即可。 注意特判一个数(其实没有必要)
阅读全文
摘要:这是个后缀平衡树的裸题。。。。 然后傻逼的我调了一下午。
阅读全文
摘要:如果不考虑重复,显然r-l==maxv-minv则可以保证合法。 如果考虑重复的话,可以用区间和和区间平方和辅助验证。 以上所有均可以用线段树维护。
阅读全文
摘要:一道比较简单的莫队…… 用bitset维护三个区间的交元素。
阅读全文
摘要:论文题。 考虑到这题的维护和区间操作是反向的,也就是说无法像V那题快速的合并标记。 我们知道,一个区间的最小值和其他值是可以分开来维护的,因为如果一个区间被整体覆盖,那么最小值始终是最小值。 对于被覆盖一半的区间,讨论一下即可。 对于每个最小值和次小值记录前缀最小值,当前/历史最小值,当到达合法区间
阅读全文
摘要:这个题目是Segment-Tree-beats的论文的第一题。 首先我们考虑下这个问题的不同之处在于,有一个区间对x取max的操作。 那么如何维护这个操作呢? 就是对于线段树的区间,维护一个最大值标记,最大值出现次数,以及严格次大值。 接下来考虑处理操作。 首先如果x>maxv[o]证明已经是无所谓
阅读全文
摘要:NOI2017的简化版…… 就是维护的时候要想清楚怎么讨论。
阅读全文
摘要:练一下线段树模板,区间乘法。
阅读全文
摘要:老省选题了。 首先考虑怎么比较超长数字的大小? 参见UTR1的那道题 先比size,然后比较字典序即可。 接下来考虑下切割的问题。 因为要将字符串切割成k份,所以这个字符串只会存在n/k个本质不同的起始位置。 然后可能会发现,如果能够整除的话,将这些起始位置直接后缀排序就可以了。 那么如果不能整除怎
阅读全文
摘要:这题理论上可以用ETT,但是用LCT建虚点可以解决这个问题。 对于最晚的操作1建立一个虚点,然后把操作0挂上去。
阅读全文
摘要:离线一下,动态开点+线段树合并,然后权值线段树上询问kth即可。
阅读全文
摘要:去实验培训回来了……写个题先玩玩 这题给人一种平衡树的感觉 但是呢,实际上操作离线+离散化+线段树一样能做 #include<bits/stdc++.h> #define lson (o<<1) #define rson (o<<1|1) const int N=2e5+5; typedef lon
阅读全文

浙公网安备 33010602011771号