RMQ
文章平均质量分 57
DTL66
细节决定成败
展开
-
POJ 2823 Sliding Window【RMQ压缩(长度确定)】
Sliding Window题意:给一个长度为N的数组,输出所有区间长度为K的数组元素的最大值与最小值;AC代码:#include#includeusing 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 · 429 阅读 · 0 评论 -
HDU 5289 Assignment【二分+RMQ】
Assignment题意:给一个数组,给一个K,找到满足连续子串的个数,使子串中的最小值与最大值之差小于K, N:1e5思路:确定右端点,二分枚举右端点,找到最大的满足位置,用RMQ判断,统计每一左端点的贡献即可;AC代码:#include#include#includeusing namespace std;typedef long long LL;c原创 2016-12-10 19:14:22 · 412 阅读 · 0 评论 -
HDU 5443 The Water Problem【RMQ水题】
The Water Problem题意:给出N个数和Q次查询,没次查询L,R,输出【L,R】内数组元素的最大值;AC代码:#include#includeusing 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 · 570 阅读 · 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 · 690 阅读 · 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#includeusing namespace std;const int MAXN=5e4+11;int原创 2016-12-10 00:30:38 · 470 阅读 · 0 评论