
数据结构-RMQ
JeraKrs
本人目前就职于百度商业研发部,有需要内推的朋友简历可发我邮箱 jerakrs@qq.com
展开
-
uva 11235 - Frequent values(RMQ)
题目链接:uva 11235 - Frequent values题目大意:给定一个非降序的整数数组,要求计算对于一些询问(i,j),回答ai,ai+1,…,aj中出现最多的数出现的次数。解题思路:因为序列为非降序的,所以相同的数字肯定是靠在一起的,所以用o(n)的方法处理处每段相同数字的区间。然后对于每次询问:num[i]=num[j]:j−i+1numi≠numj:max原创 2014-08-24 23:37:01 · 1409 阅读 · 0 评论 -
uva 12338 - Anti-Rhyme Pairs(后缀数组+RMQ)
题目链接:uva 12338 - Anti-Rhyme Pairs题目大意:给定若干个字符串,每次询问两个字符串的最长公共前缀。解题思路:本来应该将每个字符串连接起来做后缀数组,但其实可以直接把一个字符串看成是一个字符,然后排序了就对应是SA数组,然后处理height即可。然后根据后缀数组的性质,字符串i和j的最长公共前缀长度即为rank[i]+1~rank[j]之间height的原创 2014-09-02 22:45:47 · 1105 阅读 · 0 评论 -
hdu 3183 A Magic Lamp(RMQ)
题目链接:hdu 3183 A Magic Lamp题目大意:给定一个字符串,然后最多删除K个,使得剩下的组成的数值最小。解题思路:问题等价与取N-M个数,每次取的时候保证后面能取的个数足够,并且取的数最小,查询最小的操作用RMQ优化。#include #include #include using namespace std;const int maxn = 10原创 2014-10-27 21:01:23 · 877 阅读 · 0 评论 -
hdu 2888 Check Corners(RMQ)
题目链接:hdu 2888 Check Corners题目大意:给定一个矩阵,每次查询矩阵中的最大值,并且判断该最大值是否在所查询的角落上。解题思路:一开始用线段树,一维RMQ都超时了,然后换成了二维的RMQ,结果MLE,dp数组换成9∗9就过了。#include #include #include using namespace std;const int maxn原创 2014-10-27 19:35:56 · 1043 阅读 · 0 评论 -
hdu 4123 Bob’s Race(树形dp+RMQ)
题目链接:hdu 4123 Bob’s Race题目大意:一个城镇有N个住户,N-1条路连接两个住户,保证N个住户联通,M次询问,给定N条边的信息,包括连接的住户序号以及路的长度。然后是M次询问,每次询问Q,要求找到最长的连续序号,使得Max(dis[i]) - Min(dis[i]) ≤ Q(l≤i≤r),输出最大的r-l+1。dis[i]为从第i个住户出发,不重复走过路原创 2014-10-28 16:10:29 · 1290 阅读 · 0 评论 -
Codeforces 487B Strip(RMQ)
题目链接:Codeforces 487B Strip#include #include #include #include #include using namespace std;const int maxn = 1e5 + 5;const int maxr = 20;const int inf = 0x3f3f3f3f;int ca, cd, AS[maxn],原创 2015-03-19 14:52:03 · 1345 阅读 · 0 评论 -
hdu 5288 OO’s Sequence(two point + rmq)
题目链接:hdu 5288 OO’s Sequence#include #include #include #include using namespace std;const int maxn = 1e4 + 5;const int maxm = 1e5 + 5;const int mod = 1e9 + 7;int N, v[maxm], a[maxm], l[max原创 2015-07-28 20:30:48 · 637 阅读 · 0 评论 -
Codeforces 602B Approximating a Constant Range(RMQ)
题目链接:Codeforces 602B Approximating a Constant Range代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 100005;const int maxm = 20;int N, A[maxn], mx[maxn][原创 2015-12-03 21:18:01 · 645 阅读 · 0 评论