题目链接:1285 山峰和分段 思路:枚举N的因子,然后检查每一段是不是都有山峰就好了。检查的时候用 RMQ。预处理时间复杂度为O(nlogn),总的复杂度也是这么多。 所说有O(n)的解法,不过没想出来。 ...
分类:
其他好文 时间:
2016-09-13 00:05:57
阅读次数:
156
rmq 就是在变化的前提下在一定范围内查询最值 @单点更新 http://hihocoder.com/problemset/problem/1077 在大神面前这就是水题???? 自愧不如 @区间更新 http://hihocoder.com/problemset/problem/1078 学习到了 ...
分类:
其他好文 时间:
2016-09-12 22:22:05
阅读次数:
171
枚举,二分,$RMQ$。 对于一个序列来说,如果固定区间左端点,随着右端点的增大,最大值肯定是非递减的,最小值肯定是非递增的。 因此,根据这种单调性,我们可以枚举区间左端点$L$,二分找到第一个位置${{p_1}}$,使得$\mathop {\max }\limits_{i = L}^{{p_1}} ...
分类:
其他好文 时间:
2016-09-04 14:15:57
阅读次数:
163
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 题意:给一个长为n的匹配好的括号串,q个询问,每次询问交换一对括号。问交换后是否依然匹配。 维护一个数组b和一个数,表示当前字符串下左右匹配过后左括号剩余的数量。更新的时候遇到左括号 ...
分类:
其他好文 时间:
2016-09-03 21:14:00
阅读次数:
190
转自:http://blog.csdn.net/liang5630/article/details/7917702 rmq算法可用来求区间最值,区间最值差,树上最近公共祖先,时间复杂度O(nlogn) 1. 概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指 ...
分类:
编程语言 时间:
2016-09-01 12:51:56
阅读次数:
290
RMQ模板题 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int N=50001,M=30; 5 int n,q,h[N],minl[N][M],maxl[N][M]; 6 int RMQ(int,int ...
分类:
其他好文 时间:
2016-08-31 23:45:52
阅读次数:
220
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1806 题意:给1~n个单调不递减的数,求q次区间出现次数最多的那个数的次数。 由于单调不递减,是有一个顺序的。则可以考虑记录一个b(i)=第i个数字在前i个里出现了i次,一定是连续的。这样把 ...
分类:
其他好文 时间:
2016-08-30 21:03:28
阅读次数:
157
士兵杀敌(三) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 时间限制:2000 ms | 内存限制:65535 KB 难度:5 南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一 ...
分类:
其他好文 时间:
2016-08-24 18:51:26
阅读次数:
131
RMQ问题是一类区间最值问题,这里给出一个特殊的RMQ问题,初始给定一个n长的排列P,注:n长排列是指有1~n这n个整数构成的一个序列每个整数恰好出现一次。并对这个排列P进行M次查询操作,每次查询形如Query(L,R),每次查询返回排列P中位置在区间[L,R]上所有数中最大的那个数,其中位置的下标 ...
分类:
其他好文 时间:
2016-08-22 18:06:08
阅读次数:
174
题意:给出n个数和Q个询问(l,r),对于每个询问求出(l,r)之间连续出现次数最多的次数。 代码: /* rmq算法 当询问到x,y时,设在x之后并且与a[x]相同的最后一个数编号为t,那么x到t之间的数一定相同,t-x+1可能是答案;t+1到y之间的最大连续个数也可能是答案。那么我们设两个数组, ...
分类:
其他好文 时间:
2016-08-22 12:35:45
阅读次数:
96