日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【复习笔记】根号算法总结

發布時間:2023/12/15 综合教程 39 生活家
生活随笔 收集整理的這篇文章主要介紹了 【复习笔记】根号算法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于我根號算法實在是太菜,所以有了這么篇不是很靠譜的總結= =
如果有問題直接戳我或者留言就好>.<

莫隊

理想莫隊信息:維護一個子集的信息,支持(O(a))插入一個元素,(O( b ))刪除一個元素,無法比直接暴力更高效地合并
例如:給出一個點集,多次詢問點集的一個子集的信息

普通莫隊:考慮右端點O(n)變化過程中,左端點限制在一個根號塊內,也就是每次移動不超過根號,總復雜度為(O(nsqrt(m)+m))

一個卡常小trick:奇數塊正著排,偶數塊反著排常數小一半

由于莫隊是對于值域暴力維護,而修改次數是(O(nsqrt(m))),查詢次數是(O(m)),因此對于值域進行根號分治維護復雜度可以去掉線段樹的log(log-log平衡此時不如1-sqrt平衡)

普通莫隊常見題:小Z的襪子

二次離線莫隊:將莫隊當做是O( nsqrt(m) )次查詢區間中滿足特定特征的性質的數的某個信息
如果這個信息具有可減性,可以差分 考慮差分后變成O(nsqrt(m) )次查詢前綴中滿足特定特征的性質的數的某個信息 此時插入次數(O(n))而查詢次數(O(nsqrt(m))) 把插入的復雜度往上提,查詢O(1)就可以做到更優秀的復雜度

樹上莫隊:

1.樹上兩條鏈的信息差分成兩段到根的路徑(四維降成二維)此時使用普通莫隊即可

2.連通塊直接分塊

3.對括號序分塊(此時可以處理子樹信息或鏈信息 鏈信息需要特判LCA)

分塊

靜態分塊:大部分針對在線處理,預處理時對于塊信息(O(nsqrt{n}))與塊與塊之間的信息(O(n))預處理

常見用法:區間眾數/逆序對

勢能分塊:一道很牛的題 [Ynoi2019] 美好的每一天~ 不連續的存在

定義勢能(f(i))表示(1 ext{~}i)加入(i)的合并次數 因為啟發式合并 所以總數是nlogn 所以按照(f(i))加權分塊 每增量(sqrt{nlog}) 每個塊暴力啟發式合并

因為([1,r])加入(r+1)的勢能一定是大于([l,r])加入(r+1)的勢能的 因此復雜度正確

此時分塊復雜度分析為(O(FN+totF/F)) 因此一個塊內取(sqrt{totF}=sqrt{nlog})

根號重構分塊:比較常見的就是分塊維護凸包之類的東西,如果邊角塊變化就重構,不然可以直接打tag快速處理答案(比如凸包就可以使用two pointer去掉log)

根號平衡

平凡根號平衡:(sum s_i =n)此時不同的(s_i)不超過(sqrt n)(度數/出現次數)

常見用法:光速冪/度數分塊/數論分塊/分塊區間和等等

總結

以上是生活随笔為你收集整理的【复习笔记】根号算法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。