6 30開荒筆記 莫隊演算法

2022-07-22 07:24:13 字數 295 閱讀 3026

//莫隊演算法的題面:[1,n]的區間,m次查詢

1:莫隊演算法的前置操作在於,存在乙個相對簡單的方法,可以通過當前區間的值計算出當前區間的左右短點微調後的區間的值

2:莫隊演算法的核心在於,通過適當的排序,使得每次區間微調的幅度盡量小,這樣可以使得(2)中的操作複雜度盡量的低。

2.1 將區間分塊,大小為根號n

2.2 排序,按左端點位置排序,若兩個區間的左端點在乙個區間內,按右端點排序

3:對排完序後的查詢逐個處理

//明日預告,stl map優化,離散化,最小生成樹/曼哈頓距離,鄰接表。

莫隊演算法學習筆記(一) 普通莫隊

前言 在學習莫隊演算法之前,我一直以為這是乙個很高深的演算法。實際上,它就是乙個很高深的演算法 這個演算法玄學地將分塊與暴力兩大演算法實現了二合一,從而打造出了乙個時間複雜度為o n n o n sqrt n o nn 的求解多個區間詢問的離線演算法。具體介紹 首先,我們以詢問中l ll所在的區間為...

莫隊演算法學習筆記(三) 樹上莫隊

樹上莫隊的核心思想,就是將一棵樹轉化成乙個序列,然後用普通莫隊來搞。以一棵樹為例 要想對這棵樹進行樹上莫隊,我們第一步就是用乙個 s 陣列把它的括號序存下來 id 12 3456 78910 1112 1314 1516 s 12 4788 7455 2366 31 同時,我們用 i 陣列儲存每個數...

莫隊演算法學習筆記(二) 帶修莫隊

莫隊演算法,是乙個十分優雅的暴力。普通的莫隊可以輕鬆解決一些離線問題,但是,當遇上了一些有修改操作的問題,普通莫隊就無能為力了。於是,改進後的莫隊 帶修莫隊就這樣產生了。接下來,我們一起在普通莫隊的基礎之上,學會帶修莫隊這個強大無比的演算法。既然是帶修莫隊,那麼第乙個關鍵問題就是如何處理修改。其實,...