
RMQ
文章平均质量分 57
DTL66
细节决定成败
展开
-
POJ 2823 Sliding Window【RMQ压缩(长度确定)】
Sliding Window 题意:给一个长度为N的数组,输出所有区间长度为K的数组元素的最大值与最小值; AC代码: #include #include using namespace std; const int MAXN=1e6+11; int a[MAXN],dmax[MAXN],dmin[MAXN],ma[MAXN],mi[MAXN]; void RMQ_init原创 2016-12-10 17:24:34 · 448 阅读 · 0 评论 -
HDU 5289 Assignment【二分+RMQ】
Assignment 题意:给一个数组,给一个K,找到满足连续子串的个数,使子串中的最小值与最大值之差小于K, N:1e5 思路:确定右端点,二分枚举右端点,找到最大的满足位置,用RMQ判断,统计每一左端点的贡献即可; AC代码: #include #include #include using namespace std; typedef long long LL; c原创 2016-12-10 19:14:22 · 437 阅读 · 0 评论 -
HDU 5443 The Water Problem【RMQ水题】
The Water Problem 题意:给出N个数和Q次查询,没次查询L,R,输出【L,R】内数组元素的最大值; AC代码: #include #include using namespace std; const int MAXN=1e3+11; int a[MAXN],d[MAXN][32]; void RMQ_init(int N) { for(int i=0原创 2016-12-11 00:06:33 · 598 阅读 · 0 评论 -
HDU 3183 A Magic Lamp【RMQ区间取数(贪心)】
A Magic Lamp 题意:给出一个大数,然后给出N,输出大数去除N个数之后的最小数,不输出前导0; 思路:反向想一下就是从大数中取strlen(str)-N个数使取出的数最小,枚举每一个区间右端点,计算区间左端点即可,每次查询需要得到查找区间范围内最小值的位置(多个最小值时反回位置最小者),所以d[][]保存的应该是最小值的位置而不是最小值;*AC代码:#include<cstdio>原创 2016-12-11 15:40:16 · 732 阅读 · 0 评论 -
POJ 3264 Balanced Lineup【RMQ模板题】
Assignment 题意:给出长度为N的数组和Q次查询,每次查询给出L,R,输出max(AL-AR)-min(AL-AR); N:5e4, Q:5e5; 模板题:需注意存储时如果从0开始那么查询时L-1,R-1; AC代码: #include #include #include using namespace std; const int MAXN=5e4+11; int原创 2016-12-10 00:30:38 · 492 阅读 · 0 评论