、

P13954-ICPC-2023-Nanjing-R-红黑树

题意

给出一棵树和 \(a_{1, \ldots ,n}\),优化:

\[f_{u,j}=\min\{ [a_u=1]+\sum_v f_{v,i-1},[a_u=0]+\sum_{v} f_{v,i} \} \]

思路

考虑发现这个函数有凸性,然后考虑证明。叶子结点的 \([a_u=]\) 函数是有凸性的,然后本质上是在对它们进行按位加然后取最小值还是具有凸性。

那么考虑答案,\(\sum_v f_{v,i-1}\) 的图形可以看成是 \(\sum_v f_{v,i}\) 向右平移一格。然后考虑如果 \([a_u=1]\),相当于将前者向上平移一格,可以看出是在零点的位置多加了一个斜率为 \(1\) 的位置,否则是在零点加斜率为 \(-1\) 的点。这样发现也可以证明是有凸性的。

那么答案就是 \(f_{u,0}\) 加上所有斜率为负数的点。即黑点个数加上所有斜率为负数的数量。

然后我们在做背包合并的时候可以懒插入一下,这样类似长链剖分复杂度。\(\mathcal{O}(n\log n)\) 或 \(\mathcal{O}(n)\)。

posted @ 2026-09-24 14:48  tanghg  阅读(9)  评论(0)    收藏  举报