https://www.luogu.com.cn/problem/CF1303G
看到这题,首先很容易想到树形dp,但发现要维护两个值,一个为末项,一个为和,很好分析出这个东西有凸性。
这个时候有两种做法,维护凸包或李超线段树。
之所以用李超线段树,是可以想象出维护末项(k)和和
(b)之后最终的答案其实之和队对面的深度(x)有关,而这个大胆猜测可以用一次函数的形式来表达。
然后发现在这种情况下很难用换根来搞,然后处理这类问题,很容易想到点分治。然后在此过程中维护一下叶子节点的值即可。
样例图