
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 · 459 阅读 · 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 · 2841 阅读 · 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 · 498 阅读 · 0 评论