随笔分类 -  数据结构

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