CF1868

发布时间 2023-09-13 10:41:18作者: Tagaki

CF1868

A

最优化,考虑上界。分讨特殊情况,若 \(n\) 足够大,那么上界就是 \(m\) 。构造考虑每列需要出现的数,是 \(\{\},\{0\},\{0,1\}\dots\) 那么考虑钦定第一行出现 \(0,1,\dots\),第二行出现 \(1,2,\dots\),其他位置循环摆放即可。发现可以达到 \(m\) 的情况是 \(n\ge m-1\),否则答案为 \(n+1\)

B1 & B2

对于 B1,连边 \((i,a_i)\),得到若干置换环,构建图论模型。考虑 \(\text{arg}\) 是固定的,对每个点 \(i\) 计算出需要改变的量 \(b_i\),那么 \(b_i = 2^p-2^q\),那么 \(i\) 对应的 \(p,q\) 固定。相当于对每个 \(2^k\) 有若干有向边,进行匹配,看是否有若干欧拉回路。

对于 B2,可以连边,转化到 B1 相当于是边权可以为 \(0\),那么若 \(b_i=2^k\),那么它有两种连边方式:\((2^{k+1},2^k)\)\((2^k,0)\)两种状态,考虑钦定第一种,如何 调整

考虑 影响,发现改变 \(2^k,2^{k+1},0\) 的度数,且根据 \(b\) 的正负号有两种完全相反的操作,记在 \(2^k\) 上。关注 顺序,从左到右考虑,若 \(\text{deg}_{2^k}\) 不为 \(0\),那么仅有一种方式调整,且只能这么调整,判断即可。

C

把答案式子列出来 \(\sum \sum _{u}\sum_{v}\max\{\dots\}\),关注 \(\max\),考虑枚举 \(x\),考虑最大值为 \(x\) 的路径条数 \(f(x)\) 。关注 恰好,考虑 容斥,转化为 至多,设 \(f(x)\) 表示最大值不超过 \(x\) 的路径条数。

DP,枚举 \(x\),设 \(f_n\) 表示大小为 \(n\) 的树中最大值不超过 \(x\) 的路径条数,\(g_n\) 表示到根的满足限制的路径条数,转移简单。转移每次左右子树中至少一个是满二叉树,对每个满二叉树记忆化即可,复杂度 \(\mathcal{O}(m\log n)\)

直接考虑在 \(\text{lca}\) 处计算路径的贡献,那么有 \(\sum\limits_{u}\sum\limits_{i=1}^{m}xy(i^{l_1+l_2-1}-(i-1)^{l_1+l_2-1})im^{n-l_1-l_2-1}\) 。考虑优化,关注 \(u\),显然后面的式子只根子树大小相关,子树大小至多 \(\log n\) 种,记忆化。关注第二个 \(\sum\limits_{i=1}^{m}\),跟 \(i\) 相关的量发现可可以预处理 \(g(x)=\sum_{i=1}^{m}i(i^x-(i-1)^x)\)另设 DP 辅助转移,复杂度 \(\mathcal{O}(\log ^3n+m\log n)\)

总结:和式变形:交换求和符号,恰好,考虑 容斥,转化为 钦定 / 至多 / 至少。树上计数,考虑在 \(\text{lca}\) 处统计,DP 转移优化,关注量及其相关的量,量独立,另设 DP 辅助转移。