CSP-S 2021 游記


進考場先吃一塊巧克力,坐等發題。

打開題面一看,有 O2,沒有非傳統題。

讀完題的第一印象:

  • T1 貪心;
  • T2 順着 DP 過去即可(DP 套 DP);
  • T3 數據結構維護一下;
  • T4 平面圖最小割。

開場先寫 T1,寫着寫着寫成「在遠端的飛機可以在任何時刻補到近端」,樣例過不了,突然意識到自己寫錯題意;把 cnt 改成一個 set 就過了。

T2 仔細讀了一下題,發現似乎不能用自動機做判定,在草稿紙上分類討論了一下認為其可以區間 DP+前綴和優化。寫完一個之后樣例二答案比標准答案大,調了半天后意識到 ASB/AB 形式的轉移不能隨意取分界點,否則會重復計算;把這個改完之后就過了。

T3 首先發現其需要維持被刪除的數的另一個出現位置連續,嘗試分析能否貪心,分析一會沒分析出結果,一看比賽時間差不多過半,於是寫了一個看似 \(O(n^2)\) 的爆搜,在貪心正確時復雜度正確。過了大樣例之后又造了若干 R 很多的數據,中途一不小心造了一個 \(\sum n\) 多一個 0 的數據,也只跑了一點幾秒,於是非常確信自己的程序沒有問題,決定去肝 T4,要是肝出來了再慢慢分析正確性。

T4 成功完成了前面幾步轉化,並通過一些技巧減少了分類討論的數量。然而最后一步讓所有關鍵點有出邊,意識到交叉一定不優后,沒有意識到可能出現包含的情況,直接只對着環上所有相鄰的點對做最短路,兩兩配對,結果第二個樣例比標准答案大。此時離考試結束有四五十分鍾。又嘗試讓一個點有多個出邊,結果比標准答案小;對着轉化題意做可以發現這樣做會允許一條邊被割多次,這看起來不該比正確答案小,於是猜測是某處寫掛了(而非結論假了)。然而實際原因是一條邊被割多次會導致存在三個區域兩兩有公共邊界,該情況不合法,從而答案比正確答案小。反復橫跳了一會,並沒有意識到問題所在。

還有 15 分鍾時開始開虛擬機挨個編譯運行,並沒有發現什么問題。幾分鍾后又開始分析 T4,最后才模糊地意識到完全沒有限制的最短路可能造成三個區域兩兩有公共邊界,然而沒有分析出來。

出考場之后看 U 群提到 T4 是區間 DP(或者不依賴性質的最大權匹配),想了一會發現自己漏掉了兩條路徑包含的情況。

拿到代碼之后花 6 分鍾改完 T4,感覺血虧。/kk


免責聲明!

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



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