
数据结构---RMQ
Soar-
这个作者很懒,什么都没留下…
展开
-
RMQ学习
RMQ(Range MinimumQuery)问题 有关RMQ的详细介绍可见刘汝佳《算法竞赛入门经典训练指南》P197页 RMQ问题可以解决对于一个整数数组(当然也可以是其他可比较大小的元素类型)的任意区间[L, R]查询最值时,以O(1)时间复杂度回答询问。其实它就是一种数据压缩的思想。 RMQ能在经过O(nlogn)的时间预处理后,做到O(1)时...原创 2018-05-25 10:46:07 · 1535 阅读 · 0 评论 -
POJ 3264 Balanced Lineup(RMQ入门模板题)
题意: 求区间最大值与区间最小值,输出两者之差 题解: 前面用线段树写过,不过裸的区间最小值与最大值问题,RMQ问题中ST算法可以很好的实现,并且效率很高!#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>u...原创 2018-05-25 10:54:22 · 138 阅读 · 0 评论 -
POJ 3368 Frequent Values(RMQ,需要转换)
题意:给一非递减数组,求区间[L,R]中出现次数最多的值所出现的次数。 蓝书P198有详细分析。 题解: 游程编码:(a,b)表示有b个连续的a。比如-1,1,1,2,2,2,4可以这样表示:(-1,1),(1,2),(2,3),(4,1)。需要用一些的数组记录!具体看代码注释。然后求一个区间最大的b就可以了,区间两边需要单独处理。#inclu...原创 2018-05-25 14:07:56 · 181 阅读 · 0 评论 -
HDU 3183 A Magic Lamp(贪心 or 转为RMQ)
题意:给出一个n位数,删除m位,使得剩下的数最小 题解:老师上课讲贪心的时候,说过删1位的情况。贪心策略如下:对于n位数构成的数删m位,每次总这样删除a[i]:它是第一个满足a[i]>a[i+1]的,如果不存在就删除a[n]。比如176832,删7。假设删其他的这个7在那里碍事都不会使得有更小的情况。删除m位就依次这样删除。贪心+双向链表可以完成删除。 但是可以删m位可以转换为RMQ问题来写...原创 2018-05-29 20:00:27 · 165 阅读 · 0 评论 -
POJ 2452 Sticks Problem(二分+RMQ)
题意:Xuanxuan has n sticks of different length. One day, she puts all her sticks in a line, represented by S1, S2, S3, ...Sn. After measuring the length of each stick Sk (1 <= k <= n), she finds t...原创 2018-05-29 19:59:45 · 270 阅读 · 0 评论 -
HDU 3193 Find the hotel(RMQ,需要转换,巧妙二维变一维)
题意:给定n个旅馆的p和d两个属性,然后输出所有的目的旅馆。如果对于所有的旅馆i来说,没有其他任何一个旅馆的px和dx值同时小于pi和di。那么旅馆i可以算作一个是“目的旅馆”。题解:这个题和蓝书P228相似,但是好难用画图法转化,转化了半天也没转化对。这里的解法是将二维转化为一维,定义数组a[p]=d 表示所有价格为p的旅馆中最小d。然后根据a数组转化为RMQ,初始化数组。线性扫描一遍所有旅馆,...原创 2018-05-29 19:59:57 · 193 阅读 · 0 评论 -
POJ 1785 Binary Search Heap Construction(RMQ递归写笛卡尔树)
题意:每个节点有两个信息:string值和r优先级。要求构建一个Treap并且任意节点的string和r都是唯一的。最后按要求输出该Treap的序列。 题解:直接写蓝书的Treap会超时,有种笛卡尔树的Treap可以写。(暂时还没看)这里用RMQ递归写。#include<iostream>#include<cstdio>#include<cstring>#...原创 2018-05-29 20:00:02 · 212 阅读 · 0 评论