最近很累 南昌打铁 选拔赛打的一塌糊涂 没有心态了 颓了好久 今天写写st表
首先 RMQ(Range MIinimum/Maximum Query 离线查询区间最大最小值)
有很多种写法比如线段树(蔡) 树状数组(不会) st表
那么来讲讲st表
首先st表的主体其实就是一个预处理的数组
预处理时间复杂度o(nlogn) 查询时间复杂度o(1) 空间复杂度o(n)
首先我们来看预处理代码 然后根据代码讲解st表的
for (int i = 1; i <= n; i++) cin >> f[i][0]; for (int j = 1; j <= 20; j++) for (int i = 1; i <= n; i++) if (i + (1 << j) - 1 <= n) f[i][j] = min(f[i][j - 1], f[i + (1 << j - 1)][j - 1]);