分塊算法總結(持續更新ing)


最近學了一些分塊,來總結一下個人感受:

  分塊是什么呢?就是把一個大塊拆成若干個小塊進行計算,每個小塊有可能有一些共同特點,或者每個小塊內部是有順序的,這樣,在修改操作的時候,只需要算出兩邊的節點所屬的小塊的編號分別是什么,然后兩邊的散塊(姑且這么叫)可以進行暴力修改,而中間的由於題目不同,可以進行不同的操作,比如說區間加,那么就可以在中間的每個小塊上面直接像線段樹一樣打一個lazy標記,標記區間增加了多少。然后在查詢的時候就可以直接對散塊進行暴力查詢,然后對整塊運用之前設置的lazy標記,或者保證有序后用二分進行從O(n)進行到O(log(n))的優化。

  例題:【BZOJ】3343教主的魔法 http://www.cnblogs.com/BeyondW/p/5908139.html

           【BZOJ】2453維護隊列  http://www.cnblogs.com/BeyondW/p/5908478.html

           【BZOJ】2120: 數顏色  http://www.cnblogs.com/BeyondW/p/5908478.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM