做题记录 25.10.12
QOJ #6298. Coloring
\(a_i\) 向 \(i\) 连边,构成外向基环树,则操作等价于每次选择一条边 \(u\to v\),令 \(c_u\to c_v\)
令 \(t_u\) 表示结点 \(u\) 的 \(c\) 的变化次数
显然有 \(\forall (u\to v),t_v\le t_u\)
令 \(dp_{u,i}\) 表示基环树的子树 \(u\) 中,\(t_u=i\) 时,子树内的最大贡献
显然 \(dp_{u,i}\gets ((i+[u=s])\bmod 2)w_u-ip_u\),\(dp_{u,n+1}\gets -\infty\),每加入一个儿子 \(v\) 使 \(dp_{u,i}\gets dp_{u,i}+ \max_{j=0}^{i+[u=s]} dp_{v,j}\),前缀 \(\max\) 优化可做到 \(O(n^2)\)
当 \(s\) 在树部分上时,受其父亲影响点 \(s\) 至多变化一次,因此答案为 \(\max(dp_{s,0},dp_{s,1})\)(此时显然可以做到时间复杂度 \(O(n)\),但意义不大)
当 \(s\) 在环上时,特判环长为 \(2\) 的情况:设另一个点为 \(t\),则 \(s,t\) 之间要么不操作 \(s\) 和 \(t\),状态为 \(1,0\),要么操作 \(s\to t\) 变为 \(1,1\),要么操作 \(t\to s\) 变为 \(0,0\),对应的操作数量为 \((0,0),(0,1),(1,0)\),因此此时答案为 \(\max(dp_{s,0}+dp_{t,0},dp_{s,0}+dp_{t,1},dp_{s,1}+dp_{t,0})\)
当环长 \(>2\) 时,设环上的点为 \(p_{1\sim l}\),其中 \(p_1=s\),且认为此时初始的 \(t_s=1\),则显然有 \(t_{p_{1\sim l}}\) 单调不增,可证 \(t_{p_l}\ge t_s-2\)
因此枚举 \(k=1\sim n+1\),令 \(g_{i,0/1/2}\) 表示 \(p_{1\sim i}\) 中 \(t_{p_i}=t_s-0/1/2\) 时最大的贡献,则
用 \(\max g_{l,\ast}\) 更新答案即可
总时间复杂度 \(O(n^2)\)

浙公网安备 33010602011771号