冒險類手機遊戲大全_冒險類網遊_單機遊戲下載_好玩的冒險類手遊排行榜
阿新 • • 發佈:2022-03-30
本篇主要是我學習了莫隊演算法之後的一些感受,僅包含普通莫隊與普通帶修改莫隊相關知識,望各位大佬指點一二
首先就是非常經典的莫隊適用的題型:
(1)區間詢問問題,且區間資訊不可高效合併,即傳統資料結構難以維護
(2)必須可以離線
(3)不帶修改(或帶簡單修改)
(4)(這一條可以自動忽略)若已知區間 \([L_1,R_1]\) 的答案,我們可以花費 \(O(|L_1 - L_2|)\) 的時間將左端點移到 \(L_2\),花費 \(O(|R_1 - R_2|)\) 的時間將右端點移到 \(R_2\) 的位置,從而得到區間 \([L_2,R_2]\) 的答案,即我們區間左右端點移動 \(1\) 的複雜度是 \(O(1)\)
下面就來說一下莫隊的基本思想:
在我們可以 \(O(1)\) 地移動區間左右端點地前提下,莫隊就是將所有的詢問區間按照一定順序排好,然後從第一個區間開始進行區間的移動,每次移動完一個區間就進行答案的統計,每一個區間的答案從上一個移動好的區間移動過去,而非從頭開始重新移動,我們一開始認為已知 \([0,0]\) 的答案
看思想肯定是啥都不會的,下面就通過一道題具體來看一下什麼是莫隊(相信我莫隊真的不難)
題目描述:
基本思路:
我們在本題中維護陣列 \(tmp[i]\) 表示數 \(i\) 出現的次數,在移動區間的過程中對這個陣列進行操作,若 \(val[i]\) 在加入了一次 \(i\)
(因為本題我程式碼寫的不符合莫隊的規範,會起誤導作用,所以就明天再來填坑了)