02 2023 档案
摘要:以下我们并没有考虑计数时重复计算的问题,讨论一些细节可以做到这一点。并且假设 $n,m$ 同阶。 首先我们考虑 $k$ 比较小的情况。 考虑最简单的 $k=3$。 一个非常直观的做法应该是枚举一个点 $u$ 和它的出边 $(u,v)$,然后再枚举 $v$ 的一条出边。这个大概是 $O(m(n+m))
阅读全文
摘要: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$ 小的。 这个一眼是个数点对吧,但显然不能直接数。 我们可以二分答案,变成询问矩形内有多少个点,这个可以直接树
阅读全文
摘要:考虑我们关心什么信息:每个寿司被谁选了。这个是 $O(3^n)$ 的。 但我们其实只关心一个信息:当前状态是否合法。这个是 $O(1)$ 的。 显然后者过于简单以至于我们无法转移状态,考虑折中一点,我们想知道是否合法,想在新加入一个寿司的时候判断是否合法,那么我们需要知道每一个质因子被谁选了,这是
阅读全文
摘要:先考虑两个包含的区间能否转化,发现并不可以。 有一个显然的想法是我们可以暴力求出每个位置的上界 $up_i$。 现在问题变成 $v_i \leq mx_i$,同时要求 $\forall i \in[1,Q],\exist j\in[L_i,R_i] ,v_j=x_i$。 这个问题好像不是很好做,我想
阅读全文
摘要:首先显然是个 dp。 然后我们来考虑设计状态。一个比较自然的想法是设 $f_u,g_u$ 分别表示 $u$ 子树内满足 牵扯到其子树 / 完全在其子树内 的限制的答案。但是 $g_u$ 由 $v$ 合并来时,倘若不选 $(u,v)$ 这条边,按理说应该是 $f_v$ ,但这时多考虑了一些限制,无法转
阅读全文
摘要:我们注意到这是个动态问题,且不容易直接解决,考虑怎么把它变成静态问题。 考虑 CDQ 分治,发现没有卵用,一方面因为 CDQ 分治要求各操作对询问贡献独立,然而我们的任一单独操作都不会对询问产生贡献,只有若干操作合并到一起时才可能产生贡献;另一方面,这个题要求某种意义上的在线(不过 CDQ 好像也可
阅读全文
摘要:不妨把 $B$ 也由大到小排序。 先考虑怎么推一推式子。我们要求的是 $$ \sum_{\pi}\prod_{i=1}^n \min(A_i,B_{\pi_i})=\sum_{\pi}\prod_{i=1}^n \min(A_{r_i},B_i) $$ 然后我们可以把 $B_n$ 提出来,考虑能否进
阅读全文
摘要:关于 Lucas 定理 起初,有一个 $\binom{n}{m}$,我们想要计算它,但它可能太大了,我们只想要计算它取模质数 $p$ 的结果。但当 $n,m$ 真的很大的时候,我们还是没有办法计算它。这可真是太不好了。 考虑怎么计算 $\binom{n}{m} %\ p$ 的结果,容易想到: $$
阅读全文
摘要:考虑什么时候 $\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}
阅读全文
摘要:我们考虑到,行与行之间的交互只可能通过一个 $1\times2$ 的竖着的小长方形来实现,可以把这一部分先丢出去不考虑,先考虑如下子问题:$i$ 列用 $k$个,只能横着放,有多少种方案。 显然我们可以枚举第一行用了几个,有 $$ g_{i,k}=\sum_{j=1}^{k-1}\binom{i-1
阅读全文
摘要:显然整除关系构成一张 DAG,我们每次选择一个点之后可以覆盖所有它能到达的点,在这个情况下再询问这个题的问题。 显然所有点都被覆盖等价于所有入度为 $0$ 的点被选择,我们可以简单求出入度为 $0$ 的有几个,这个可以 $O(n \log\log n)$ 或者线性处理最小不妨设为 $p$,接下来就是
阅读全文
摘要:记 $a_i$ 前缀和为 $t_i$,$t_n=S$,$b_i$ 前缀和为 $s_i$。 $$ ans=\sum_{\sum b_i=S}\sum_{i=1}^nw_i|s_i-t_i| $$ 套路地拆贡献,我们有[^1] $$ \begin{aligned}ans&=\sum_{i=1}^nw_i
阅读全文
摘要:显然我们可以解出 $a_i>b_i,a_i<b_i$ 的分别有 $x,y$ 组。 首先,我们把这个东西当成一个配对,可以考虑一下把所有的数合并到一起排序。 然后显然可以有一个 dp,记 $dp_{i,cnt,p_1,p_2}$ 表示我们目前考虑到了第 $i$ 个数,当前满足 $a_i>b_i$ 的数
阅读全文