
数据结构----RMQ
柒月 流火
菜
展开
-
Balanced Lineup POJ - 3264 RMQ 裸题 线段树
RMQ#include<cstdio>#include<algorithm>#include<cmath>using namespace std;const int maxn=50010;int maxsum[maxn][20],minsum[maxn][20];void rmq(int n) //预处理{ for(int j=1...原创 2018-10-28 15:35:07 · 154 阅读 · 0 评论 -
Frequent values POJ - 3368 RMQ 预处理
题目链接:http://poj.org/problem?id=3368题意:求出某一区间出现次数最多的数的次数思路:首先是记录出现的次数,然后区间查询的时候,有可能将本来出现次数最多的拆开成不是最多的了,所以要处理一下。举个例子。查询的区间为5---10,就是1 1 3 10 10 10,数据处理之后为3 4 1 1 2 3(因为前面的1是连续的,就会影响结果),这样找出来的最大值...原创 2018-10-28 17:18:02 · 152 阅读 · 0 评论 -
POJ 2637 WorstWeather Ever (详解) RMQ应用
思路对于一组询问Y和X(也即从Y年到X年),我们来分析什么时候答案为”true“:1、从Y到X年的降雨量都已知2、X年的降雨量不超过Y年的降雨量3、从Y+1到X-1年的降雨量都小于X年的降雨量只有上述3个条件都满足,答案才为"true”。接下来考虑什么时候答案为"maybe“:1-1、Y年和X年的降雨量已知1-2、X年的降雨量不超过Y年的降雨量1-3、从Y+1到...原创 2018-10-29 20:24:58 · 307 阅读 · 0 评论 -
降雨量 HYSBZ - 1067 RMQ 应用
思路请看这POJ 2637 WorstWeather Ever (详解) RMQ#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;const int maxn=50...原创 2018-10-29 20:40:26 · 283 阅读 · 0 评论 -
Cornfields POJ - 2019 二维RMQ 裸题
题意n代表矩阵的大小,b代表要查询矩阵的大小,k代表有多少次询问每次询问给定一个点坐标,以这个坐标为左上角大小为b的矩阵中求最大值和最小值的差#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int dmax[251][251][8][8],dm...原创 2018-10-31 17:14:07 · 228 阅读 · 0 评论 -
A Magic Lamp HDU - 3183 详解 RMQ
题意给定长度为n位的数字,删去其中的m位数,不能改变数的顺序,使剩下的数最小(如果剩下的数包含前导零输出时则去掉)。思路此题是以所存最小数的位置(下标)进行预处理 最后输出的是一个(n-m)位的数,输出结果的第一位数最大的可选范围为原数的 0~m(所存n位数的下标)位,一共进行 n-m 次选择,每次选出最小的那个数的下标,最后一次选择的右区间正好为 n-1 (0~n-1 一共n位...原创 2018-11-03 09:53:30 · 268 阅读 · 0 评论 -
Interviewe HDU - 3486 RMQ+枚举
找出输入的最大值m。k / m 就是最小的组数,依次枚举就行。组数最小为1,用rmq预处理出每个区间的最大值,当每组的最大值相加大于k时,这就是最小组数#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typed...原创 2018-11-03 11:55:59 · 237 阅读 · 0 评论 -
Check Corners HDU - 2888 RMQ应用
给定n个旅店的价格和位置,确保没有其他旅店的 价格和距离 都比这个旅店小,求有多少个这样的旅店竟然是多组输入  ̄へ ̄#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define inf 0x3f3f3f3fusing namespace st...原创 2018-11-01 22:15:55 · 137 阅读 · 0 评论 -
Check Corners HDU - 2888 二维RMQ
题意给定子矩阵的左上角和右下角,找出子矩阵中的最大值并判断最大值是否在子矩阵的四个角上。一开始把判断条件写反了 o((>ω< ))o#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int dmax[310][310][9][9],s...原创 2018-11-02 15:56:20 · 139 阅读 · 0 评论