\(RMQ\)(区间最值)问题,通常用\(ST\)表。
- \(ST\)表不仅可以解决区间最大最小问题,还可以解决区间最大公因数/最小公倍数(例)
- 二维\(ST\)表(例),其实就是两个维度都进行倍增,但注意两个维度都要从\(0\)开始枚举,一个为0,一个不为时也要转移。
- 结合二分,当二分一个值(如区间长度,区间端点)并需要用区间最值\(check\)时,可用\(ST\)表维护区间最值(例)。或者可以二分范围,然后需要求此范围内的最值。(例)
- 二维区间最值不一定用完整的二维\(ST\)表,可能由于一些极好的性质(例),将矩形优化为正方形,时间空间都优化掉一个\(log\)。
- \(ST\)表的区间不一定是实际的位置。比如给\(n(1\le n \le 1e5)\)个范围\(x(1\le x\le 1e9)\)和这个范围上的数,求区间最值。这种问题就不应该用\(x\)做下标,而应该用\(n\)范围作下标。这是可能在题中还会涉及到离散化等。
- \(ST\)表与二叉查找树结合(例),可以将插入点权值排序,再用\(ST\)表维护区间最小时间戳。
- 再来提供一道神秘题。