RMQ
文章平均质量分 85
cillyb
这个作者很懒,什么都没留下…
展开
-
HDU 3193 Find the hotel(RMQ)
题目地址:点击打开链接题意:给你n个旅馆的p(价格)和d(距离值),然后要你输出所有符合条件的旅馆。条件是没有其他任何一个旅馆的p和d同时小于该旅馆的p和d。( 1 思路:一看数据量不是特别大,暴力n^2也许会过。。于是写了发真过了,数据太水吧。正解应该是RMQ预处理(nlogn), 价格区间的最小距离。a[p]=d表示所有价格为p的旅店中最短的距离是d原创 2017-03-18 20:26:37 · 496 阅读 · 0 评论 -
HDU 5875 Function (RMQ+二分)
题意:给你一个长度为n的数组,现在有q次询问,每次询问给你l, r, 求a[l]%a[l+1]%a[l+2]...%a[r], (n 思路:因为取模一个比自己大的数是没用的,所以我们每次只需要找下一个比当前结果小的就行,这样就可以RMQ预处理区间最值,然后二分查找下一个位置了。。。有个知识,一个数x,最多只能被取模logx次。所以这个解法的时间复杂度是可以保证的代原创 2017-09-03 22:24:42 · 396 阅读 · 0 评论 -
hihoCoder 1419 后缀数组四·重复旋律4(重复次数最多的连续子串)
描述小Hi平时的一大兴趣爱好就是演奏钢琴。我们知道一个音乐旋律被表示为长度为 N 的数构成的数列。小Hi在练习过很多曲子以后发现很多作品中的旋律有重复的部分。我们把一段旋律称为(k,l)-重复的,如果它满足由一个长度为l的字符串重复了k次组成。 如旋律abaabaabaaba是(4,3)重复的,因为它由aba重复4次组成。小Hi想知道一部作品中k最大的(k,l)-重复旋律。解题方法原创 2017-07-18 00:20:44 · 613 阅读 · 0 评论 -
Educational Codeforces Round 23 D. Imbalanced Array(单调栈或RMQ+二分)
题意:imbalance值:一段区间中最大值与最小值之差给你一个数组(n思路:首先想到RMQ,nlogn预处理,但是还得n^2跑一下所有区间,显然不行。大神的思路:从每个数可作为最大值被计算次数Maxki和最小值计算次数Minki入手,答案就是sum(Maxki*num[i]-Minki*num[i])那么如何计算Maxki和Minki呢?原创 2017-07-05 23:12:30 · 346 阅读 · 0 评论 -
POJ 3264 Balanced Lineup (区间最值 RMQ模板/线段树)
题目地址:点击打开链接区间最值查询,RMQ和线段树都可以。RMQ代码:#include#include#include#includeusing namespace std;const int maxn = 5e4+5;const int maxm = 25;int dpMax[maxn][maxm], dpMin[maxn][maxm], n, m;原创 2017-03-15 23:29:40 · 479 阅读 · 0 评论 -
HDU 2888 Check Corners(二维RMQ模板)
题目地址:点击打开链接题意:给一个n*m的矩阵,下面q的询问,每个询问给出一个子矩阵的左上角和右下角的坐标,要你求出这个子矩阵里面的最大元素,然后输出,并且,这个最大元素和子矩阵的四个角上的元素比较,只要能和其中一个元素相等,就输出yes,否则输出no对模板的理解:摘自点击打开链接一维RMQ的ST算法,是叫一段2^i长度的序列分成两个2^(i-1)的序列然后原创 2017-03-17 13:09:24 · 488 阅读 · 0 评论 -
POJ 2019 Cornfields(二维RMQ 最值查询模板)
题目地址:点击打开链接题意:给你一个n*n的矩阵,给你一个点矩阵左上角(x, y),其大小为b*b,有q个询问,每次询问求该矩阵内的最大值和最小值的差。思路:这题因为数据和诺所以暴力也可以。RMQ n^2logn预处理O(n)查询也可以:1、一维RMQ可以用来求线性区间最大值问题。那么我们不原创 2017-03-16 16:51:46 · 724 阅读 · 0 评论 -
POJ 3368 Frequent values(RMQ/线段树区间合并)
题目地址:点击打开链接题意:给定一个数组,其中的元素满足非递减顺序,要求对于一对起点和终点,回答出其中某个元素重复出现的最大次数。思路:由于原数列已经排好序,所以相同的数字一定是在一起的。我们可以O(n)扫描一遍,算出每一个位置上的数字num是从左起第几个num,记为num[i] 如样例,扫描后如下,括号内是num数组值 -1(1) -原创 2017-03-16 00:40:53 · 581 阅读 · 0 评论 -
RMQ算法
1. 概述RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j算法。当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们暂不介绍。2.RMQ算法对于该问题,最容易想到的解决方案是遍历,复杂度是O(n)。但当数据量转载 2017-03-15 20:31:49 · 340 阅读 · 0 评论 -
UVA 11235 Frequent values(RMQ)
题意:给你一个长度为n的,非递减的数组,现在有q次询问,每次询问输出[l, r]中出现次数最多的那个数的出现次数。(n, q, |a[i]| 思路:第一反应是主席树或者莫队搞,写了发莫队n*sqrt(n)*log(n), 6e8,T了。。。注意给你的序列的是非递减的。所以我们可以将相同的数合并为1块,如1 1 1 2 2可以表示成(1, 3), (2, 2)两块,表示1有3个,2有原创 2017-10-13 16:07:12 · 383 阅读 · 0 评论