就準備這樣面對你的 NOI 嗎?
問題:
- 對拍,極限資料,構造資料。不要老覺得過了大洋裡就可以萬事大吉跑路了。
- 自己覺得寫不完的東西,一定不要上來就寫。
- 讀題。讀題。讀題。實在改不了就每題都先寫個暴力驗證題意。
- 學會放題。一個題實在想不明白就退而求其次。保持冷靜。
- 儘量一遍寫對。
分數:\(55 + 0 + 0=0\),原因如上。
題解:
T1
考慮按時間順序 dp。將邊按開始時間加入,設 \(f_i\) 為經過第 \(i\) 條邊的最小花費,轉移是一個斜率最佳化的形式。
T2
嘗試轉化題中條件,猜出來幾個零星的必要條件,但是並沒有什麼用。那麼直接考慮序列的生成過程。
考慮最值分治,最大值欽定為最右端的那個,設 \(f_{l,r,k}\) 表示 \([l,r]\) 最大值為 \(k\) 的方案數,轉移 \(f_{l,r,k}=\sum_{p} f(l,p-1,k)\times f(p+1,r,k-1)[\mathrm{區間 [l,p-1],[p+1,r] 均合法}]\)。
注意到 \(p\) 只在區間中點附近有 \(\mathcal O(1)\) 種有效取值,猜想有用的區間並不會太多,打個暴力發現就 \(2500\) 個左右。
然後考慮最佳化,這樣的 dp 貢獻形式是經典的,可以使用拉格朗日插值最佳化。分段 \(\mathcal O(n)\) 插值即可做到 \(\mathcal O(Sn^2)\),但是有點卡不過去。
為啥是 0 分?因為我向右走的條件讀錯了,寫了 7k 程式碼調不出來,打暴力發現還不對,睡一覺起來發現讀錯題了,刪了幾個無用分討就過了 /qd。
T3
模擬費用流,我覺得我講不明白,cmd 寫的很好。