RMQ(ST表)
作用:可以静态查询区间[l,r],但是不支持修改区间里的值。
1273. 天才的记忆
题意:给定一组数,查询任意区间[l,r]里的最大值。
思路:f[i][j]表示从i开始,长度为2^j的区间里的最大值,对区间长度二分则
f[i][j]=max(f[i][j-1],f[i+2^(j-1)][j-1]),长度2^j/2=2^(j-1),所以可以预处理出所有的f[i][j];
[l,r]怎么表示,len=r-l+1,2^k=len,求出k,此时的k可能2^k<len,所以可以分成
两部分f[l][k
原创
2022-02-25 15:52:47 ·
359 阅读 ·
0 评论