![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RMQ
文章平均质量分 59
Demoo.
来记录不会的题啦
展开
-
P4392 [BOI2007]Sound 静音问题(rmq,st表)
列出了所有静音的起始位置i(i满足max(a[i, . . . , i+m−1]) − min(a[i, . . . , i+m−1])原创 2022-10-11 12:11:55 · 134 阅读 · 0 评论 -
RMQ(区间最值问题)
如果j==0的话说明长度是2的0次方,也就是1,那么我们就把他赋值成他本身,如果长度大于1的话我们取两半的最值。左边区间就是[i , i+2^(j-1)-1],右边区间就是[i+2^(j-1) , i+2^j-1 ]所以写成转移方程就是f[i][j]=max(f[i][j-1],f[i+2^(j-1),j-1]当输入完一个数组的时候,初始化st表,按长度(2的j次方)开始列举,每次循环从i=1开始。f[i][j]表示以i为起点长度为2的j次方的区间的最值。右端点就是i+2^j-1。原创 2022-09-27 17:40:48 · 287 阅读 · 0 评论 -
B. Integers Have Friends
思路:因为每个数的余数不好确定,所以我们利用差分数组来消除a[i]%m==k中k的计算。a[l]%m==a[i+1]%m==...==a[r]%m (m是>=2的一个数)然后差分数组b中,满足题意的区间里的所有数都是m的倍数,m就是这个区间的公约数。因为m>=2,所以我们只需要找到gcd>=2的区间的最大长度就可以了。题意:给你n个正数,找到最长一段区间l~r,使这里面的所有数满足。(没了解过st表的可以移步我的另一篇来看)解决区间最值问题用RMQ中的st表来解决。原创 2022-09-27 17:38:16 · 323 阅读 · 0 评论 -
RMQ算法
RMQ用法思想概述原创 2022-06-16 19:44:08 · 124 阅读 · 0 评论