NOIP2020 集訓

wangyiyang2發表於2020-11-23

11.23 11.23 11.23

做了道 CF514E 加深了矩陣加速 dp 轉移的方法。
即原本 dp 方程為 f i = ∑ j = 1 100 f i − j × g s j f_{i}=\sum\limits_{j=1}^{100}f_{i-j}\times gs_j fi=j=1100fij×gsj ,其中 g s j gs_j gsj 為深度為 j j j 的點的個數。
然後考慮矩陣優化一下就好了,時間複雜度 O ( 10 0 3 × log ⁡ m ) O(100^{3}\times\log m) O(1003×logm)

為了加強程式碼能力做了道大模擬 CF1439A2,反正我寫了5k程式碼,寫了將近 1.5 小時

然後做了兩道 ds 題

1.CF1422F

思路還是挺簡單的,首先答案 a n s = ∏ P i max ⁡ k i ans=\prod P_i^{\max k_i} ans=Pimaxki 於是我們對於根號內的質因數用線段樹維護最大指數,大於根號的用可持久化線段樹維護一下就好了,時間複雜度 O ( n log ⁡ 2 n ) O(n \log ^2 n) O(nlog2n)

2.CF1439C

由於序列單調不增,經過操作1後也單調不增,我們就能想到二分。對於操作1我們二分出第一個小於 y y y 的數然後線段樹區間修改。對於操作二,我們為了方便線段樹上處理先讓 y y y 加上 [ 1 , x ] [1,x] [1,x] 的權值這樣就可以從 1 1 1 開始做,然後再線上段樹上分治一下就好了。時間複雜度 O ( n log ⁡ 2 n ) O(n \log ^2 n) O(nlog2n)