RMQ问题-ST方法
生活随笔
收集整理的這篇文章主要介紹了
RMQ问题-ST方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
參考?http://blog.csdn.net/sdj222555/article/details/7875575
?
RMQ 就是?Range Minimum/Maximum Query 就是求區(qū)間最值問(wèn)題。
可以寫(xiě)一個(gè)線段樹(shù),但是預(yù)處理和查詢的復(fù)雜度都是O(logn)。這里有更牛的算法,就是ST算法,它可以做到O(nlogn)的預(yù)處理,O(1)!!!地回答每個(gè)詢問(wèn)。
?
Sparse Table 稀疏表
就是?f[i,j]表示從第i個(gè)數(shù)起連續(xù)2^j個(gè)數(shù)中的最大值。
我們要求區(qū)間[2,8]的最大值,就要把它分成[2,5]和[5,8]兩個(gè)區(qū)間,因?yàn)檫@兩個(gè)區(qū)間的最大值我們可以直接由f[2,2]和f[5,2]得到。擴(kuò)展到一般情況,就是把區(qū)間[l,r]分成兩個(gè)長(zhǎng)度為2^n的區(qū)間。
?
總結(jié)
以上是生活随笔為你收集整理的RMQ问题-ST方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: kafka彻底删除topic
- 下一篇: sqlserver 多排序的问题