做题记录 25.6.1
\(\textcolor{purple}\odot\) CF1805F1 Survival of the Weakest (easy version)
在变换过程中,令 \(s=\min a_i\bmod M\),\(a'=a-s\),则 \(a'\) 的值域不超过 \(a\) 的值域,用堆维护即可,时间复杂度 \(O(n^2\log n)\)
\(\textcolor{purple}\odot\) CF1805E There Should Be a Lot of Maximums
\(\text{DSU on tree}\),转化为 \(O(n\log n)\) 次插入、删除和 \(O(n)\) 次查询集合的 \(\text{MAD}\) 值,容易均摊 \(O(\log n)\) 维护,总时间复杂度 \(O(n\log^2 n)\)
\(\textcolor{purple}\odot\) CF1804E Routing
显然构造出的 \(a\) 组成一棵基环树,且非环点必然与环上点相邻
状压 \(dp\),令 \(f_S\) 表示取点集 \(S\) 组成一条链,链首为 \(\min S\) 的情况下链尾可能取到的点集(即 \(f_S\subseteq S\))
容易 \(O(n2^n)\) 求出 \(f\)
枚举 \(S\),判断以点集 \(S\) 作为环组成的基环树是否合法,若合法则可构造方案
总时间复杂度 \(O(n2^n)\)
\(\textcolor{blue}\odot\) CF1806D DSU Master
合并 \(x,x+1\) 产生贡献当且仅当 \(a_x=0\),在此之前 \(1\sim x-1\) 连通且根为 \(1\)
令 \(f_i\) 表示长为 \(i+1\) 且操作完后 \(1\sim i+1\) 连通且根为 \(1\) 的排列数量,令 $ g_i$ 表示长为 \(i\) 的排列的答案,显然 \(g_i=g_{i-1}i+[a_i=0]f_{i-1}\)
考虑 \(f\) 的转移,当 \(a_i=0\) 时,显然 \(i\) 可以放在任意位置,转移为 \(f_i\gets f_{i-1}i\),当 \(a_i=1\) 时,不能放在最后一个位置,转移为 \(f_i\gets f_{i-1}(i-1)\)
时间复杂度 \(O(\sum n)\)

浙公网安备 33010602011771号