题目描述
Alice 和 Bob 在玩一个游戏。
游戏在一棵有 \(n\) 个点的树上进行。最初,每个点上都只有一个数字,那个数字是 \(123456789123456789\)。
有时,Alice 会选择一条从 \(s\) 到 \(t\) 的路径,在这条路径上的每一个点上都添加一个数字。对于路径上的一个点 \(r\),若 \(r\) 与 \(s\) 的距离是 \(dis\),那么 Alice 在点 \(r\) 上添加的数字是 \(a\times dis+b\)。
有时,Bob 会选择一条从 \(s\) 到 \(t\) 的路径。他需要先从这条路径上选择一个点,再从那个点上选择一个数字。
Bob 选择的数字越小越好,但大量的数字让 Bob 眼花缭乱。Bob 需要你帮他找出他能够选择的最小的数字。
题解
将加值拆解为一上一下两条路径,发现每条路径上是加上一条和深度有关的一次函数。
于是可以树链剖分,李超线段树维护一下最值。
注意:李超线段树不是凸包。
代码咕咕咕
标签:数字,题解,路径,Alice,选择,SDOI2016,P4069,Bob From: https://www.cnblogs.com/flywatre/p/17340196.html