莫隊演算法 入門理解

2021-08-23 12:17:49 字數 393 閱讀 5528

目前的題型概括為三種:普通莫隊,樹形莫隊以及帶修莫隊。

今天主要講的是普通莫隊演算法,莫隊演算法本來就是乙個莽夫演算法,但是他就是對查詢區間排個序後就優化很多了。

莫隊演算法巧妙地將詢問離線排序,使得其複雜度無比美妙……」在一般做題時我們時常遇到使用排序來優化列舉時間消耗的例子。莫隊的優化基於分塊思想:對於兩個詢問,若在其l在同塊,那麼將其r作為排序關鍵字,若l不在同塊,就將l作為關鍵字排序(這就是雙關鍵字)。時間複雜度為o(n*sqrt(n))。

通過已知區間資訊去維護新的區間資訊。基本上是左右區間邊界移動。每乙個區間查詢都要有乙個id號 不然排序過後就會亂掉

莫隊演算法入門

昨天重溫了一下captainmo的職業生涯 莫隊的模板,看了下別人的部落格,把三個板子打了,做練習前先小小總結了一下吧。一.基礎莫隊演算法 莫隊演算法 離線 暴力 分塊,它通常用於不修改只查詢的一類區間問題,複雜度為 主要就是通過排序過後再處理詢問能優化暴力,排序則是利用分塊,至於為什麼更優,附張別...

莫隊入門總結

這是一篇適合蒟蒻的講解 大佬可以自行離開 莫隊是一種是離線的演算法 即它在詢問的時候是不會修改的,所以我們可以通過調整詢問的次序來獲得答案。比如區間3到5和區間3到6 他們之間只差了1 於是我們只需要看下新加進來的這個元素對原來答案的影響就好了 對吧?問題是 我們應該如何給詢問區間排序使得時間複雜度...

樹上莫隊演算法

繼續回來寫部落格 記錄點有意思的題目什麼的。貌似寫過這個的沒多少人 所以我也記錄一點。首先序列上的莫隊大家都應該很熟悉了 那麼樹上的莫隊要怎麼搞呢?先來看個題目 spoj cot2 求樹上兩點間路徑上有多少個不同的點權。序列上的莫隊是把詢問按照左端點分塊了 可是樹上沒有左端點,怎麼辦呢?我們把樹分塊...