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)\)。

浙公网安备 33010602011771号