做題記錄


開學之前博客一直處於咕咕咕狀態,原因有兩個,第一我懶,第二我沒圖

Owen 頹廢了一個八月,天天看番,開學前還打了幾部 gal...為了防止自己頹廢,開了一個博客。


10.27

sb 聯考,一天 fst 一題,明明能 ak 的掛成 sb,真的 sb。

昨天 div2 也是,細節沒考慮到,fst 了一題,兩題沒時間打了,真的 sb。

要好好反省一下了。


10.26

打了一下 div2,E,F 都不會。。。

CF1251:

E2: 貪心,將 m 從大到小排序,用堆維護。

F: 注意到集合中一個子集和子集的補集可以對應左右兩個序列,然后如果兩個數我們可以用兩個狀態表示它放左邊還是右邊。


09.07

記得構造 (x,y) 選哪個的時候不能 swap!九校 D1T3 就這么掛了。。。


09.06

codeforces VP:

983,1208,1205,925,1137,1214.1178.

Codeforces Round #545 (Div. 1) (1137)

A. Skyscrapers

離散化一下,取個 max 即可。

B. Camp Schedule

猜結論,取最長 border。這個東西可以 kmp, 然后就直接構造。

C. Museums Tour

暴力拆點,(x,i) 向 (y,i+1) 連邊。\(5\times 10^6\) 跑 tarjan 有點卡常,而且空間也有點卡。

D. Cooperative Game

一道不錯的老題,floyd 找環法。一個點速度為 1,一個點速度為 2,這時正好速度為 1 的點在環上的距離 \(x\equiv -t(\text{mod}\ c)\),然后直接走 t 步就行了。步數大概是 3t+2c。

E. Train Car Selection

一道不錯的思維題。觀察性質,\(b,s>0\),那么每次放多少個,開頭那個始終是最小的,並且若在開頭放 0,那么 0 后面的數一定沒有貢獻,全部刪掉。若有 3 操作的話,我們維護兩個標記,全局加 k,b。我們對剩下的點維護一個下凸殼,全局加的時候就暴力把結尾不符合下凸殼的數刪掉。注意,因為有全局加標記,所以剛開始放結尾的數一定是 \((n,-kn-b)\),n 是未加數時的序列長度。時間 \(O(m)\)

F. Matches Are Not a Child's Play

一道不錯的數據結構題。

我們先考慮整棵樹的最大值和次大值,每次刪除的時候肯定是刪成只有次大值到最大值的路徑,然后從次大值刪到最大值。那么我們可以知道肯定是一條條鏈刪過來,這樣的話我們用最大值為根,LCT 上每個 splay 維護子樹最大值到根的路徑。那么現在我們只需要單點查這個點屬於哪個最大值,那么答案肯定是最大值<當前最大值的鏈長+這個點到次大值的距離。

這個求前綴和是帶修的,所以用樹狀數組維護。加上先前的 LCT,時間 \(O(n\log^2 n)\),常數很小。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM