1. 程式人生 > >洛谷P3250 網絡 [HNOI2016] 整體二分+樹狀數組

洛谷P3250 網絡 [HNOI2016] 整體二分+樹狀數組

http ble 好的 mar lin 方式 樹狀 怎麽 什麽

正解:整體二分

解題報告:

傳送門!

親這裏的建議是用整體二分呢

dbq最近看sd淘寶說話體看多了有點腦抽,,,

首先考慮如果是單組詢問怎麽做昂QAQ

考慮二分答案

對於所有比mid小的操作都不用管

然後對於大於mid的操作,他們都是不應該存在的

怎麽樣就不會存在呢,那不然就是已經結束了不然就是經過了故障點嘛

所以如果能通過某種方式算出所有麻油結束的經過了故障點的鏈數就可以判斷是否合法了嘛

然後這個其實是個比較典型的dfn序套路題,,,?

就是對每個修改就改鏈的兩端+1(-1),兩端的lca-1(+1),lca的父親-1(+1)

然後查詢經過點x的鏈有幾條就相當於是查詢x的子樹中的權值和

( 然後這個套路我本來還想解釋一下的,,,後來發現麻油什麽好解釋的昂QAQ

就理解成差分就好,然後為什麽是lca-1,lca父親-1,是為了保證lca處答案的正確性

感性理解趴,,,這個我也不能很好的解釋,但是畫個圖還是不難理解的w

顯然如果經過x的鏈的條數=大於mid的鏈且沒有結束的條數說明枚舉大了,ans在[l,mid]中

否則ans在[mid+1,r]中

然後看到多組詢問什麽的可以想到,整體二分

就依然是整體二分的經典套路昂,具體內部實現就和單組詢問的思想是一樣的

over

洛谷P3250 網絡 [HNOI2016] 整體二分+樹狀數組