摘要: 范围最小值问题(Range Minimum Query,RMQ)。给出一个长度为n的数组A1,A2,…,An,设计一个数据结构,支持查询操作Query(L,R):计算min{AL,AL+1,…,AR} 对于这种数组中元素不会进行更新的情形,最常用的是Tarjan的Sparse-Table算法,它用O(nlogn)的时间进行预处理,之后每次查询只要O(1)的时间,而且常数很小 设d[i][j]表示从 i 开始,长度为2^j的一段元素中的最小值,则可以得到递推关系:d[i][j] = min { d[i][j-1] , d[i+2^(j-1)][j-1] } 预处理代码如下: 1 #in... 阅读全文
posted @ 2014-02-07 12:29 ~~Snail~~ 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 2007/2008 ACM International Collegiate Programming ContestUniversity of Ulm Local ContestProblem F: Frequent valuesYou are given a sequence ofnintegersa1, a2, ... , anin non-decreasing order. In addition to that, you are given several queries consisting of indicesiandj(1 ≤ i ≤ j ≤ n). For each query 阅读全文
posted @ 2014-02-07 12:10 ~~Snail~~ 阅读(181) 评论(0) 推荐(0) 编辑