随笔分类 - 数据结构
摘要:对于这类问题,我们有一种比较通用的解法是设定一个贡献的充要条件。我们通常会在若干个都能产生某一贡献 $p$ 的元素 $a_1\dots a_k$ 上定义一种小于关系 $R$,每次只让这些元素中的极小值进行贡献。具体来讲我们可以对每个元素求出它上/下一个比它“小”的元素 $pre_x,suf_x$,那
阅读全文
摘要:注意到第二问并没有什么意义:我们只在必须改道的地方改道就不会变差。 那我们自然会好奇哪些时候必须改道,这个是比较显然的:对于一个点 $u$,倘若在 $t_0$ 时刻有车往 $v$ 开,$t_1$ 时刻有车往 $w$ 开,并且这两个时刻之间,没有别的开往子树内的列车,那么我们只要在 $(t_0,t_1
阅读全文
摘要:我们先不考虑 $dep$ 的问题,先来研究有多少种不同的 $lca(i,j)$。 考虑改询问为贡献,计算一个 $l$ 可以成为哪些 $(i,j)$ 的 lca。这个东西可以写成若干个点对对吧,倘若我们忽略掉一共有 $O(n^2)$ 个点对的事实的话,我们的问题就转化成了有若干个被染成某些颜色的区间,
阅读全文
摘要:对于这种询问区间本质不同的元素个数,我们通常有以下两种方案: - 记 $pre_x$ 为 $x$ 之前最靠后的一个与其本质相同的元素的位置,可以转化为偏序问题。 - 扫描线,每遇到一个元素,就在该位置 $+1$,在上一个本质相同元素处 $-1$,询问区间和。 可以发现,前一种统计的是第一个元素,后一
阅读全文
摘要:> 给定串 $S,T_{1,\cdots,q}$,每次询问是 $S[l_i,r_i]$ 的子串但不是 $T_i$ 的子串的本质不同子串个数。 > > $|S|\le5e5,q\le1e5,\sum|T|\le1e6$。 我们先考虑 $l=1,r=|S|$ 怎么做。 显然我们使用 SAM 可以简单计算
阅读全文
摘要:> #### UOJ 191 Unknown > > 你需要维护一个向量序列,支持如下操作: > > - 在末尾加入一个向量 $(u,v)$。 > - 删除末尾的向量。 > - 询问 $[l,r]$ 内的向量与 $(x,y)$ 叉积的最大值。 > > $n,m\le5e5$。 这个东西我们首先一眼用
阅读全文
摘要:## The Method of Four Russians 又名“四毛子算法”。概括来讲是一种分块后对小块的相同情况合并之后处理小块内,块间另行处理的算法。 一个典中点的例子是 $\pm1\ \text{RMQ}$,我们考虑块大小为 $B$,这样的话块间我们使用 $\text{ST}$ 表,块内一
阅读全文
摘要:关于 mex 1.在位置 $pos$ 插入一个数 $v$。 2.询问 $[l,r]$ 的 mex。 可以考虑进行一个二分。二分区间 $[l,mid]$ 内的数是否都出现过。这个可以把 $[l,mid]$ 的数拎出来,考虑算出它们的前驱,维护区间 min,对于询问区间 $[ql,qr]$ ,倘若 $(
阅读全文
摘要:一开始看题看成计数这样的区间了,想自闭了 QAQ。 我们先手玩一下看看这样的区间有没有什么性质(记录一下踩的坑): 满足条件的区间有没有可能不多?显然并不是,考虑 $1,1,1\dots$,是 $O(n^2)$ 的。 对于某一类区间(右端点相同/长度相等),有没有可能满足条件的区间成一组组地分布(比
阅读全文
摘要:bzoj2120 每块维护 $pre_i$,代表该颜色上次出现的位置,将其排序。维护 $ans$,代表块答案。$O(\frac{n}{sz}\cdot sz\log sz)=O(n \cdot \log sz)$ 对于询问 $[l,r]$,先把所有块的答案加起来,然后减去 $pre_i \geq l
阅读全文
摘要:把操作离线下来。 把每个修改操作差分拆成两个操作,然后类似于扫描线,在位置序列上扫描,维护该位置上的历史数组,一共有 $O(q)$ 次修改,$O(q)$ 次查询。 每次操作形如给 $[pos,n] += v$,每次查询形如查询 $[1,pos]$ 中 $\geq v$ 的个数。 这个是典中典分块,显
阅读全文
摘要:先考虑如果修改操作是对整个序列进行的应该怎么做。 我们发现这个时候相当于对一个可重集合做这些操作,不妨认为有一个数组 $ar[i]$ 表示 $i$ 出现的次数。 这时询问是简单的,考虑怎么修改。发现倘若当前的值域是 $[0,mx]$,执行一次参数为 $x$ 的操作后,我们可以分类讨论: 若 $x >
阅读全文
摘要:首先,我们发现这个有贡献的数对可以有 $O(n^2)$。(显然你构造一个升序就行了) 然后,这就说明我们肯定不能把这些贡献一个个算出来丢到平面上。考虑到贡献只有 $p_1,p_2$ 两种,考虑把相同的丢到一起去算。 对于数对 $(l,r)$,我们去考虑区间 $[l+1,r-1]$ 的最大值所在位置为
阅读全文
摘要:一眼 dfs 序,转变成每个询问 $(u,v,k)$ 询问 $l[u] \leq a \leq r[u],l[v] \leq b \leq r[v]$ 的 $(a,b,v)$ 中值第 $k$ 小的。 这个一眼是个数点对吧,但显然不能直接数。 我们可以二分答案,变成询问矩形内有多少个点,这个可以直接树
阅读全文
摘要:我们注意到这是个动态问题,且不容易直接解决,考虑怎么把它变成静态问题。 考虑 CDQ 分治,发现没有卵用,一方面因为 CDQ 分治要求各操作对询问贡献独立,然而我们的任一单独操作都不会对询问产生贡献,只有若干操作合并到一起时才可能产生贡献;另一方面,这个题要求某种意义上的在线(不过 CDQ 好像也可
阅读全文
摘要:考虑什么时候 $\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}
阅读全文