随笔分类 -  分块

摘要:## The Method of Four Russians 又名“四毛子算法”。概括来讲是一种分块后对小块的相同情况合并之后处理小块内,块间另行处理的算法。 一个典中点的例子是 $\pm1\ \text{RMQ}$,我们考虑块大小为 $B$,这样的话块间我们使用 $\text{ST}$ 表,块内一 阅读全文
posted @ 2023-05-25 20:16 PYD1 阅读(477) 评论(0) 推荐(0) 编辑
摘要:关于 mex 1.在位置 $pos$ 插入一个数 $v$。 2.询问 $[l,r]$ 的 mex。 可以考虑进行一个二分。二分区间 $[l,mid]$ 内的数是否都出现过。这个可以把 $[l,mid]$ 的数拎出来,考虑算出它们的前驱,维护区间 min,对于询问区间 $[ql,qr]$ ,倘若 $( 阅读全文
posted @ 2023-03-13 20:52 PYD1 阅读(47) 评论(0) 推荐(0) 编辑
摘要:一开始看题看成计数这样的区间了,想自闭了 QAQ。 我们先手玩一下看看这样的区间有没有什么性质(记录一下踩的坑): 满足条件的区间有没有可能不多?显然并不是,考虑 $1,1,1\dots$,是 $O(n^2)$ 的。 对于某一类区间(右端点相同/长度相等),有没有可能满足条件的区间成一组组地分布(比 阅读全文
posted @ 2023-03-02 11:43 PYD1 阅读(26) 评论(0) 推荐(0) 编辑
摘要:bzoj2120 每块维护 $pre_i$,代表该颜色上次出现的位置,将其排序。维护 $ans$,代表块答案。$O(\frac{n}{sz}\cdot sz\log sz)=O(n \cdot \log sz)$ 对于询问 $[l,r]$,先把所有块的答案加起来,然后减去 $pre_i \geq l 阅读全文
posted @ 2023-02-21 16:55 PYD1 阅读(25) 评论(0) 推荐(0) 编辑
摘要:把操作离线下来。 把每个修改操作差分拆成两个操作,然后类似于扫描线,在位置序列上扫描,维护该位置上的历史数组,一共有 $O(q)$ 次修改,$O(q)$ 次查询。 每次操作形如给 $[pos,n] += v$,每次查询形如查询 $[1,pos]$ 中 $\geq v$ 的个数。 这个是典中典分块,显 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(15) 评论(0) 推荐(0) 编辑
摘要:先考虑如果修改操作是对整个序列进行的应该怎么做。 我们发现这个时候相当于对一个可重集合做这些操作,不妨认为有一个数组 $ar[i]$ 表示 $i$ 出现的次数。 这时询问是简单的,考虑怎么修改。发现倘若当前的值域是 $[0,mx]$,执行一次参数为 $x$ 的操作后,我们可以分类讨论: 若 $x > 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(15) 评论(0) 推荐(0) 编辑
摘要:考虑什么时候 $\binom{n}{m}\equiv 1(\bmod 2)$,由 Lucas 定理,我们知道 $$ \binom{n}{m}\equiv \binom{\lfloor\frac{n}{2}\rfloor}{\lfloor\frac{m}{2}\rfloor}\binom{n % 2} 阅读全文
posted @ 2023-02-21 16:52 PYD1 阅读(15) 评论(0) 推荐(0) 编辑