RMQ
文章平均质量分 72
varinic
这个作者很懒,什么都没留下…
展开
-
hdu 5875 Function 二分+rmq
按照题意每次到当前点右边找比当前点小并且最接近当前点的点p。如果你能在O(1)的时间里查询[l,r]区间最小值,那么就可以二分查找p。#include #include #include #include #include #include using namespace std;const int maxn=100000+5;int a[maxn];int dp原创 2016-09-13 18:52:49 · 410 阅读 · 0 评论 -
poj 3368 统计区间出现次数最多数个数 RMQ
对上升序列如:1 1 2 2 2 3 3 4 5 5 ....... 统计区间出现次数最多数个数。我们可以构造一个b[]数组,if(a[i]==a[i-1])b[i]=b[i-1]+1;else b[i]=1;这样对上述例子,b[]数组有1 2 1 2 3 1 2 1 1 2那么对询问区间[l,r],如果l在数与数交界处,那么直接查询l,r区间最大值。否则要知道与a[l]相原创 2016-09-16 14:08:09 · 2716 阅读 · 0 评论 -
HYSBZ 1067 RMQ
题意很清楚,坑点就是l或是r不存在时,要二分去找临近位置,然后统计这之间的max。#include #include #include #include #include #include #include using namespace std;const int maxn=2e5;map mp;/*数组下标从1到n,询问[l,r]最小值*/int a[ma原创 2016-09-16 15:44:09 · 440 阅读 · 0 评论