2013年5月19日

RMQ问题----ST解法

摘要: RMQ(Range Minimum/Maximum Query)即区间的最值查询:对于长度为n的某个数组A,回答若干询问RMQ(A, i, j)(i, j<=n)问题,即数组A中下标在i和j之间的最小/大值。该问题的解法有很多,最直接的方式遍历,算法复杂度是O(n),这对于查询次数很多(大于100万次)的场景显然是无法接受的。用线段树能将算法优化到O(log(n)),不过Sparse Table(ST)算法才是最好的,它能在O(nlog(n))预处理后实现O(1)的查询效率。ST算法主要分为两个部分:预处理和查询,下面我们将以最小值为例来阐述该算法: 阅读全文

posted @ 2013-05-19 16:30 prohome 阅读(87) 评论(0) 推荐(0)

导航