摘要: "传送门" 这道题是带修主席树的板子题。我们先来考虑一下主席树带修改最暴力的做法,就是暴力修改与之有关的所有权值线段树,这样的话单次操作的复杂度就是$O(nlogn)$的,总体的操作就是$O(n^2logn)$的,显然吃不消。 因为主席树其实应用的是前缀和的思想,我们考虑一下在最开始的时候,我们是怎 阅读全文
posted @ 2018-12-10 23:04 CaptainLi 阅读(209) 评论(0) 推荐(0) 编辑
摘要: "传送门" 又是一句经常见到的话……做完这题对主席树的理解会更好一些…… 这道题把普通的主席树单点修改区间查询改成了区间修改单点查询。这个的话我们可以改成差分解决……把一个操作改成两个,然后把所有操作按照时间进行排序。注意这里修改细节很多,因为可能在一个时间上有很多操作,所以我们要先继承上一个时间点 阅读全文
posted @ 2018-12-10 20:39 CaptainLi 阅读(164) 评论(0) 推荐(0) 编辑
摘要: "传送门" 这道题和主席树板子基本上一样,不过还是有些不同的。 因为这次要求的是是否存在一个数出现次数大于一半(mid),我们还是正常用主席树维护,之后在查询的时候,先看左子树内的权值是否大于mid,如果是就向左查找,否则再找右子树权值是否大于mid,如果是就向右。否则说明没有符合的,返回0即可。 阅读全文
posted @ 2018-12-10 17:36 CaptainLi 阅读(127) 评论(0) 推荐(0) 编辑
摘要: "传送门" 这道题的话……首先得知道怎么求$LCP$。我们的方法首先二分一个长度,之后判断一下该区间内两段字符串的$hash$值是否相等,这样就可以啦。 然后本题还要求支持插入和修改字母,所以我们需要使用一棵$splay$来维护$hash$值。具体做法是动态维护每一个节点的子树的$hash$值,在合 阅读全文
posted @ 2018-12-10 15:00 CaptainLi 阅读(169) 评论(0) 推荐(0) 编辑
摘要: "传送门" 这道题与普通的$splay$不大相同,别的都是以权值来排序,但这道题是以位置进行排序的,也就是对于一个节点,它的左子树中的节点都在它的上面,右子树中的节点都在他的下面。 这个比较独特的一点在于建树,这次不能再二分查找要插入的位置了,而是每一次直接把当前插入的点作为上一次插入的点的右儿子( 阅读全文
posted @ 2018-12-10 09:27 CaptainLi 阅读(132) 评论(0) 推荐(0) 编辑