1. 程式人生 > >雅禮集訓 Day6

雅禮集訓 Day6

最小 修改 操作 sqrt 覆蓋 並且 復雜度 去掉 一行

今日得分:10+0+20=30,修改後90+90+100=280

今日題解:

T1:題中所給的結構構成一個內向環套樹森林,對於每棵環套樹,首先樹上的每個點的孩子只能留一個最大的,其他的都需要修改,處理後變為一個環上面連一些鏈,每個鏈可以斷開鏈首或者斷開環上的前驅節點,並且至少要斷開一條環上的邊,特判只有一個環的情況即可

T2:一個位置如果先吃掉左邊的三明治,那麽它左邊的位置也會先吃左邊,於是我們對於每一行的都搜一遍即可

T3:如果所有操作都是在1~n區間內進行,那麽它的實際作用就是去掉最大值再加入一個新值,可以pq維護,我們考慮分塊,對於每個塊維護一個pq,如果某次操作整個覆蓋了某個區間,我們對pq做相應處理並在這個塊上打一個標記,現在只需要考慮如何下放標記即可,考慮對偶情況,我們對壽司維護一個堆,顯然每個位置會把最小的壽司換出來,然後把自己丟進去,這樣就可以klogk下放標記,總復雜度 O(qsqrt(n)logn)

後記:今天題目質量真高

雅禮集訓 Day6