摘要:
sto int_R orz 定义“操作”指交换任意一个相邻三元组的 1,3 位,即不一定满足题目要求,但要保证操作后逆序对数减小。 引理 1:任意奇数位是奇数,偶数位是偶数的序列,均可以用若干“操作”排好序。 证明:考虑对奇偶位置分别冒泡。 引理 2:结论成立时,把序列排好序使用的每次“操作”必是满 阅读全文
摘要:
A 答案很小,可以直接枚举答案。 B 设 $f(i)$ 表示 $i$ 这条边被多少最小环包含,则答案为 $\dfrac{\sum f(i)}d$,其中 $d$ 为最小环长度。 此时只需要求 $f(i)$ 和 $d$,对每条边跑一次最短路计数容易得出。 C Sol 1 依次加入每个数,维护 $f_i$ 阅读全文
摘要:
A 依次加入每个数,栈维护当前无法合并的数,每次把加入的数和栈顶尽量多个数合并。bitset 维护质因子来维护这个过程。 B 注意到 L,R 的狗的交友方案集合 $S$ 和 U,D 的狗的交友方案集合 $T$ 相互独立, 设 $f(x)$ 表示 $x$ 这种交友方案的价值,简单推导可知答案为 $|T 阅读全文
摘要:
A $\prod\limits_{S\subseteq U}\sum\limits_S i=\prod i^{\sum\limits_{S\subseteq U}[\sum\limits_Sj=i]}$,指数可以 01 背包求出。 注意指数可能太大,欧拉定理降幂即可。 B 记当前喜好位置 $x$ 的 阅读全文
摘要:
线段树每个点上维护区间最大值、最小值, 区间除以 $x$ 时,由区间对应的每个节点向下递归到 $\max=\min$ 的节点,在这些节点上区间推平。 每个节点被除 $O(\log V)$ 次后 $\max=\min$,所以总复杂度 $O(n\log n\log V)$。 #include <cstd 阅读全文
摘要:
对每次询问,先求出最优方案下,左端点最多往右端点逼近几步, 然后同样求出最优方案下,右端点最多往逼近后的左端点逼近几步, 最后再逼近一步使左右端点重合即可。 倍增优化这个逼近的过程。 具体地,维护 $l_{i,j}/r_{i,j}$ 表示从 $i$ 走 $2^j$ 步最左 / 右能走到哪, 然后 $ 阅读全文
摘要:
必选一条端点在直径端点的路径,所以以直径两端点为根建两棵树,考虑一棵树的答案。 需要选出 $1$ 条根到叶子的路径,$k-1$ 条叶子到叶子的路径,最大化路径并边权和, 而必定存在方案使得每条路径都经过根: 所以只需考虑选出哪 $2k-1$ 个叶子,使得构造出路径的并,即这 $2k-1$ 个叶子的根 阅读全文
摘要:
$$ \begin{aligned} &\sum_{i\in\text{subtree(u)}}d(u,i)^k\\ =&\sum_{i\in\text{subtree(u)}}\sum\limits_{j=0}^k{d(u,i)\choose j}\begin{Bmatrix}k\\j\end{B 阅读全文
摘要:
DFS 序分块,变成区间深度模 $x$ 等于 $y$ 的点加 $z$。散块暴力,考虑整块。 对 $x$ 根号分治。$x\le\sqrt n$ 时,维护 $X_{i,j,k}$ 表示 $i$ 块被形如模 $j$ 等于 $k$ 的修改加了多少即可。 $x>\sqrt n$ 时维护 $Y_{i,j}$ 表 阅读全文
摘要:
时效性 A 记 $f(n)=\sum\limits_{i=0}^{n-1}\text{popcount}(i\oplus(i+1))$,则 $f(n)=f(\sum 2^i)=\sum f(2^i)=\sum2^{i+1}-1=2\sum2^i-\sum 1=2n-\text{popcount}(n 阅读全文