「题解」CCPC2022 绵阳站 E. Hammer to Fall(图上关于度数的根号分治)
描述
有一张 \(n\) 个点,\(m\) 条边的无向图,每个点上初始有 \(a_i\) 个人。
有 \(q\) 天,第 \(i\) 天会袭击点 \(b_i\)。每个人可以在图上以无限的速度行走,但是袭击时必
须停留在某个不是袭击点的点上。
问 \(q\) 天结束之后,所有人行走距离之和最小是多少。
思路
考虑到存在一种最优方案,使得每个点上的人只有在袭击该点的前一刻移动,且一定只会移动到该点的邻居上。
证明:反证法,此时将要遭受袭击,若移动一步以上更优,记路线为 \(u\to k_1\to k_2\to\cdots\),则不妨在当前时刻只移动到 \(k_1\),在 \(k_1\) 遭受袭击时移动到 \(k_2\)。容易得到这也是满足条件的,且不劣于 \(u\to k_1\to k_2\to\cdots\)。
考虑 DP,设 \(f_{u,k}\) 表示第 \(k\) 天,\(u\) 点的一个人要存活下来至少需要多少费用。
发现 \(f_{u,k-1}\ne f_{u,k}\) 当且仅当 \(b_k=u\),且 \(f_{u,k-1}=\min_{v}f_{v,k}+w_{u,v}\)。
于是问题抽象为 \(i\) 从 \(q\) 枚举到 \(1\),用 \(b_i\) 邻居的 \(f\) 更新 \(b_i\)(邻居查询,单点修改)。
考虑根号分治,维护对每个点 \(u\) 用 set 维护度数 \(<B\) 的点 \(v\) 的 \(\min_{v}f_{v}+w_{u,v}\)。单点修改时,对度数 \(<B\) 的点暴力修改周围,查询时,对度数 \(\ge B\) 的其他点暴力查询。

浙公网安备 33010602011771号