ST(Sparse Table)

可重复贡献问题

对于运算 $$opt$$,如果它满足 $$x\ opt\ x = x$$,则对应的区间询问就是一个可重复贡献问题。

例如:

  • 运算 max 有 $$max(x, x) = x$$,运算 gcd 有 $$gcd(x, x) = x$$
  • 所以 RMQ 和区间 GCD 就是一个可重复贡献问题。像区间和就不具有这个性质,如果求区间和的时候采用的预处理区间重叠了,则会导致重叠部分被计算两次,这是我们所不愿意看到的。另外, 还必须满足结合律才能使用 ST 表求解。

更具体的:

  • 题目大意:给定 个数,有 个询问,对于每个询问,你需要回答区间 中的最大值。

    考虑暴力做法。每次都对区间 扫描一遍,求出最大值。

    显然,这个算法会超时。