1. 程式人生 > 資訊 >華為 Mate 30/P40 Pro 系列推送鴻蒙 HarmonyOS 2.0.0.138 更新:超級終端支援 FreeBuds 4 耳機,一拉即合

華為 Mate 30/P40 Pro 系列推送鴻蒙 HarmonyOS 2.0.0.138 更新:超級終端支援 FreeBuds 4 耳機,一拉即合

前置芝士

整體二分就是二分的進階版

類似於cdq分治(畢竟都是分治嘛)

演算法流程

對於一些問題,我們回答一個詢問的時候,我們可以先O(n)預處理,然後二分回答。

但是如果有m個詢問呢?我們不能對每個詢問都做一遍預處理。

此時我們需要發揚一下懶人思想:預處理中的某些處理是否可以多次利用(也就是處理一次, 但對多個詢問的二分有用)?

這時候就需要把所有的詢問一起二分(so call 整體二分),才有可能實現上邊的懶人思想。

P3527 [POI2011]MET-Meteors為例學習整體二分,建議配合程式碼食用

學習題解點這裡

上邊這個只建議學思路,不建議學寫法

帶修改區間第k小數

帶修改區間第k小數的一個神奇思路:整體二分

有樹套樹我不用就用整體二分,就是玩~

還是二分答案,比mid小的看做1,大的看做0,用樹狀陣列維護

時間這一維直接順著來就行了,判斷一個詢問往左還是右分:判詢問區間(就是輸入的那個,不是答案(二分)區間)中小於mid的數(即"1")的個數,和k比較一下就行

可以看看chen_zhe的題解

說實話,我挺推薦他這種寫整體二分的寫法的

總結

在此借花獻佛,看一下《淺談資料結構題的幾個非經典解法》(許昊然)中的介紹

所謂整體二分,需要資料結構題滿足以下性質:
1. 詢問的答案具有可二分性

  1. 修改對判定答案的貢獻相對獨立,修改之間互不影響效果

  2. 修改如果對判定答案有貢獻,則貢獻為一確定的與判定標準無關的值

  3. 貢獻滿足交換律,結合律,具有可加性

5. 題目允許離線操作

練習題目

P1527 [國家集訓隊]矩陣乘法 裸題,多了一維而已,連修改都不用

P3332 [ZJOI2013]K大數查詢 練整體二分的一道比較基礎的題目

P7424 [THUPC2017] 天天愛射擊 和P3527 [POI2011]MET-Meteors不能說毫不相干,只能說一模一樣