做题记录 25.7.29
\(\textcolor{purple}\odot\) CF1651E Sum of Matchings
显然每张 \(G(l,rl,L,R)\) 都是若干偶环和若干链的并,且互相独立,因此考虑每个环和每条链的贡献
对于一个环,求出环中左部点编号的最小值最大值及右部点编号的最小值最大值,从而计算贡献系数,容易 \(O(n)\) 求出环的贡献
枚举链,求出链中左右端点最小最大值,要求选择的 \(l,r,L,R\) 包含这些位置且不含当前链所在环上链上一个和下一个点,容易求出区间数量,这部分容易做到 \(O(n^2)\)
总时间复杂度 \(O(n^2)\)
\(\textcolor{purple}\odot\) CF1638E Colorful Operations
珂朵莉树维护颜色段,map 维护每个颜色的加法标记,线段树维护每个位置在标记的基础上额外的增量
时间复杂度 \(O(n\log n)\)
\(\textcolor{blue}\odot\) CF1647E Madoka and the Sixth-graders
进行一次操作后删去的数量是恒定的,设为 \(cnt\),则操作轮数为 \(k=\frac{\max a_i-n}{cnt}\)
通过倍增处理出 \(to_i=(p^k)_i\),初始的 \(b_i\) 会移动到 \(b_{to_i}\) 或被覆盖
令 \(V_x=\{i\mid a_{to_i}=x\}\) 表示移到 \(a_p=x\) 的初始位置集合
考虑如何构造字典序最小的 \(b\)
从小到大考虑每个值 \(i\)
若 \(V_i\ne\mathbb\emptyset\),则需要选择一个 \(x\in V_i\) 令 \(b_x\gets i\),由于 \(1\sim i-1\) 已经填好,要使 \(b\) 字典序最小,需要选择 \(x=\min V_i\) 使 \(b_x\) 填上 \(i\),剩下的 \(u\in V_i\) 只要 \(b_u>b_x\) 即可(位置重复会保留 \(b\) 最小的,要使 \(b_x\) 保留需要令其最小)
记录一个集合 \(S\),表示目前还没有放置且没有限制的位置集合,对于上述情况将所有 \(u\in V_i,u\ne x\) 加入 \(S\)
若 \(V_i=\mathbb\emptyset\),则从 \(S\) 中取出最小值 \(x\),\(b_x\gets i\)(原因同上)
时空复杂度 \(O(n\log V)\)

浙公网安备 33010602011771号