RMQ
文章平均质量分 77
sdj222555
这个作者很懒,什么都没留下…
展开
-
RMQ问题之ST算法
ST算法的基本原理百度一下就可以知道 RMQ(Range Minimum/Maximum Query)问题是求区间最值问题。可以写一个线段树,但是预处理和查询的复杂度都是O(logn)。这里有更牛的算法,就是ST算法,它可以做到O(nlogn)的预处理,O(1)!!!地回答每个询问。 来看一下ST算法是怎么实现的(以最大值为例): 首先是预处理,用一个D原创 2012-08-17 02:13:29 · 6601 阅读 · 2 评论 -
POJ 1986 Distance Queries LCA和RMQ
这题以前用tanjan做过 现在再做一遍 用RMQ的方法。 大意就是求一棵树上任意两点的距离 先DFS跑出欧拉序列 然后根据pos直接RMQ就行了 #include #include #include #include #include #include #include #include #include #define eps 1e-5 #define MAXN原创 2012-08-17 14:10:25 · 944 阅读 · 0 评论 -
POJ 3368 RMQ
此题用线段树也能做 用RMQ也能做 当然RMQ的速度比线段树要快很多 #include #include #include #include #include #include #include #include #include #define eps 1e-5 #define MAXN 111111 #define MAXM 11111 #define INF 1000原创 2012-08-17 13:14:57 · 1473 阅读 · 0 评论 -
POJ 2452 RMQ+二分
解法是 枚举每个位置i,找出i右边比第一个比a[i]小的a[j]的位置j 在i到j - 1中间求最大值的位置k 如果a[k] > a[i] 那么更新答案 #include #include #include #include #include #include #include #include #include #define eps 1e-5 #define M原创 2012-08-17 15:55:02 · 805 阅读 · 0 评论 -
POJ 2019 二维RMQ
题意很简单 就不说了 为了把它推广成矩形的 写了这种查询是O(n)的方法 当然还有O(1)的矩形的方法了 只不过太麻烦了 但是对于正方形来讲 还是比较好弄的 #include #include #include #include #include #include #include #include #include #include #include #def原创 2012-08-17 17:10:35 · 1808 阅读 · 1 评论 -
POJ 1785 treap 或 RMQ
本题大意就是。 建立一颗树,每个结点有两个关键字,要求第一个关键字满足二叉搜索树的性质,第二个结点满足堆的性质 首先,要把所有结点按照第一个关键字按非递减排序,这样之后,每个结点左边的结点都比该结点的第一个关键字小,右边的则第一个关键字都比他大。 这样的话按顺序每次插入右子树,因为要满足二叉搜索树的性质, 插入之后不能满足堆的性质时就左旋。 #include #include原创 2012-08-22 14:33:51 · 2047 阅读 · 0 评论 -
POJ 2201 RMQ 笛卡尔树
给出一些结点 每个节点有两个关键字 要求构造一棵树 第一个关键字满足二叉搜索树的性质,第二个关键字满足小堆的性质 和1785几乎一模一样 题目还让输出yes 或者no 实际上,因为所有的第一关键字互异,第二关键字也互异,所以一定能构造出来这样的树 这题不用treap的原因我嫌treap有点麻烦,还旋转啥的,没RMQ直观好想 #include #include #include原创 2012-08-26 15:43:57 · 1634 阅读 · 0 评论