不如來搞一下CDQ分治吧!

2022-07-25 19:30:21 字數 1203 閱讀 8938

cdq分治是一種時間魔術。

在正常的世界中,韶華易逝,時間總是在向前流逝著。只有過去和現在能決定未來,未來無法反過來決定現在和過去,不然就會發生世界線錯亂的現象。

cdq分治同樣順應著時間向前流逝這條規律。

總共有n秒,每秒鐘都發生了一起事件。

cdq分治的操作如下。

看看著名的三維偏序問題。

我們對第一維cdq分治,對第二維進行排序,對第3維進行bit線段樹維護。

其實,就是cdq分治套乙個二維偏序關係問題!

看幾個栗子

cf669e:little artem and time machine

題意:乙個multiset,需要支援以下操作,1.到\(t\)時刻,插入\(x\) 2.在\(t\)時刻刪除\(x\) 3.查詢\(t\)時刻\(x\)的個數.

做法

code:喵

cf762e:radio stations

題意:在座標軸上有很多個廣播站,第i個,位置為x[i],覆蓋半徑為r[i],頻率為f[i],如果兩個站\(i,j(i,都在對方半徑內,且頻率差的絕對值不超過k,那麼就把這樣的\((i,j)\)成為bad,問有多少個bad的pair.

做法

code:戳

看了考慮清楚按哪一維cdq分治,能夠使得算答案比較方便,很重要啊

cf848c:goodbye souvenir

題意:給序列a,有一些。操作為為兩種,操作1:a[p]=x,操作2:區間查詢[l,r],查詢此區間內,每個元素,最後一次出現的位置 - 第一次出線的位置。

做法

code:喵

哇,我的這種寫法看來有點慢啊。

目前,我的寫法是,先算\([l,mid]\)對\([mid+1,r]\)的貢獻,再遞迴地處理他們。但先遞迴搞\([l,mid]\),\([mid+1,r]\)。遞迴的時候順便完成對第二維的歸併排序。再算\([l,mid]\)對\([mid+1,r]\)的貢獻似乎更好一點。

女人都看一下吧

愚笨的 女人打擊男人 聰明的女人激勵男人。愚笨的女人盯著男人的缺點,老是生氣 聰明的女人欣賞男人的優點,很是 開心。愚笨的女人不分場合與男人爭吵,弄得男人很沒面子 聰明的女人在外人面前給足男人面子,私下再對男人嚴加管教。愚笨的女人貶低男人 她忘了 貶低男人就是貶低自己 聰明的女人讚賞男人 她明白 讚...

2023年總結一下吧

2021年了,時間真快,今天閒來無事,對過去的2020年做個簡單的總結 1 2020年,年初和年末,都被疫情干擾了,沒辦法,小小的病毒,把人類幹得一團糟,希望疫苗的出現,可以為人類挽回顏面。2 2020年復工初始,豪言 換一台漢蘭達,沒有實現,失敗。3 39歲的 老年人 寫了一年的 說輕鬆呢?還是累...

認識一下偽 吧

今天我希望在畫家的路上走走,驚嘆於css的神奇之餘,發現我對類似 的東西好陌生,於是乎,讓我們來認識一下它吧。first line 用於向文字的首行設定特殊樣式 first letter 用於向文字的首字母設定特殊樣式 font color background margin padding bor...