23.5 雜題

CF1612G Max Sum Array

分析一下問題,考慮某 \(c_i\) 個數在數組中的位置是 \(p_1,p_2,\dots p_{c_i}\),那這些位置的貢獻爲 \(\sum (2\times i - c-1)x_i\)。然後,這個排序不等式一下就好了。至於統計值搞一個差分前綴和就行了。

CF543E Listening to Music

先稍微轉換問題,對於所有 \(a_i<x\),相當於給所有 \(\in [i,\min(i+m-1,n)]\) 的右端點答案加一。最後就是求一個區間 \(\min\)。於是有一個離線掃描線的 \(n\log n\) 做法。可持久化+標記永久化,可以做到 \(O(n\log n)\) 時空。考慮分塊。

對於散塊詢問,我們需要知道的是塊首的值。如果直接預處理是 \(O(n\sqrt{n})\) 空間的。考慮繼續平衡複雜度,對操作繼續分塊。那麼就相當於有 \(O(\sqrt{n})\) 個區間加,做一次區間查 \(\min\)。差分一下複雜度就平衡下來了。

對於整塊查詢,由於整塊加法是平凡的,我們只需考慮散塊加法。而對於一個修改,散塊加法只有 \(O(1)\) 次。於是在修改的時候對散塊重構,重新記錄散塊的 \(\min\) 即可。

CF1824A LuoTianyi and the Show

假設已經有一個人了(沒有就分別當 \(0\)\(m+1\) 有一個人),那麼一類和二類都可以結合三類按照順序往這個人的左邊/右邊放。如果有一個三類就暫時給三類讓路。這樣子可以 \(O(1)\) 判斷。於是枚舉第一個加入的三類人即可。

CF1824B LuoTianyi and the Floating Islands

對於奇數,這樣的點顯然只有一個。而對於偶數,對於一條邊,如果兩邊數量均爲 \(m\) 這條邊兩個端點均可。於是對於每條邊在下面的端點計數 \(\binom{sz_u}{m/2}\times \binom{n-sz_u}{m/2}\)。最後每組都少算了一個端點,加個一即可。

CF1824C LuoTianyi and XOR-Tree

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章