1. 程式人生 > 其它 >「 遊記 」CSP-S 2021

「 遊記 」CSP-S 2021

「 遊記 」CSP-S 2021

CSP-S 2021 比賽時間 \(2021.10.23 - 14:30 \sim 18:30\)

賽時

\(14:30 \sim 14:40\)
\(10 \min\) 粗略地看了一下所有題目,感覺每道題都只能打暴力

\(14:40 \sim 14:55\)
\(15 \min\) 根據小樣例完成 \(T1\) 暴力的除錯,成功通過大樣例(\(\mathrm{airport3.in}\)
只不過暴力是 \(O(n^2 \log n)\) 的,感覺會被卡掉

\(14:55 \sim 15:30\)
想了 \(35 \min\)\(T1\) 正解,什麼都沒想出來(根據複雜度只想了 二分二分套二分,或許正解都不是這些演算法吧)

\(15:30 \sim 15:50\)
再次讀完題後感覺是 區間 \(dp\) (因為 \(n \leq 500\),又因為括號序列一般都是用 區間 \(dp\) 處理),於是順著思路打了 \(T2\)\(dp\)
打到中途發現推的式子好像是錯的,於是直接跳過了

\(15:50 \sim 16:25\)
想了 \(10 \min\) 左右,有思路了,但是之間一個步驟沒得到證明,所以無解的情況會跟暴力一樣 \(L\)\(R\) 都會跑一次,不過時間複雜度是由資料決定的,有解是 \(O(n)\),無解最壞是 \(O(2^n)\),但是除錯過了大樣例

\(16:25 \sim 17:00\)
思考了 \(5 \min\)

感覺沒什麼思路,打了個隨機染色,過了小樣例就以為小資料都能過,就沒有打暴力

\(17:00 \sim 17:50\)
回去想 \(T2\),又思考了 \(10 \min\),感覺可以 \(dp\) 了,分成了 ***(...)(...)(...)(...)***(...)(...)(...)(...)*** \(5\) 種情況 \(dp\) 轉移,最後調過了大樣例
特殊說明:中途有一次樣例 \(2\) 輸出 \(22\):是因為 ()*()() 這種情況算了 \(2\) 次;當時試探性地改了一個轉移的變數,沒想到就過了,後面也發現是算重了,或許能過也是偶然吧

\(17:50 \sim 18:10\)


再次思考 \(T1\),真的想不出來怎麼做了

\(18:10 \sim 18:20\)
檢查了一下 freopen,變數名,再次測試了一遍每道題的所有大小樣例

\(18:20 \sim 18:30\)
感覺也打不出什麼了,重複檢查程式碼等待考試結束

賽後

T1 廊橋分配

純粹的暴力,沒有什麼說的

洛谷自測: \(40\)(正常)
\(\mathrm{Hydro \ OJ}\) 測試: \(60\)(資料問題)

T2 括號序列

應該是正解 \(dp\),也沒有什麼說的

洛谷自測: \(100\)
\(\mathrm{Hydro \ OJ}\) 測試: \(100\)

T3 迴文

發現了一個致命錯誤:輸出的字串沒有初始化,為了簡單打輸出,就沒有用 for,直接用了 %s,但是我沒有清空字串,如果多組輸入出現 \(n\) 遞減,我就會 WA,因為答案會輸出之前殘留的字元
至於為什麼能過大樣例,因為大樣例的 \(n\) 全都是 \(20\)(以後不能相信大樣例)

洛谷自測: \(8\)(可憐,聽說暴力也能過洛谷的資料)
\(\mathrm{Hydro \ OJ}\) 測試: \(48\)(資料問題)

T4 交通規劃

隨機染色也算暴力吧,還是沒有什麼說的(為什麼一個點都過不了啊,還不如打暴力呢)

洛谷自測: \(0\)(可憐)
\(\mathrm{Hydro \ OJ}\) 測試: \(0\)(可憐)

自我評價

\(T1\) 其實是想到了正解的,即考慮每次多一個廊橋的貢獻,我以為每次都要全部遍歷一遍就是 \(n^2\) 的,所以就沒有打(奇怪的是,\(O(n^2)\) 也比 暴力的 \(O(n^2 \log n)\) 更優,我為什麼不打 \(n^2\) 呢)
其實之前已經在廊橋裡面的飛機可以不遍歷的,可以用個數據結構維護,每個飛機只會遍歷一次,所以是 \(O(n \times \log n)\)(看資料結構的複雜度咯,set\(O(\log n)\) 的)

\(T3\) 再思考一下說不定就能打出正解了(程式碼裡其實把一個 if 改成 else if 就是正解了),不應該犯 沒初始化 這樣的錯誤

整場比賽可能是因為 \(T1\) 還沒做出來,想做出 \(T1\)(因為 \(T1\) 一般都比較簡單),所以沒有把時間留給對拍(如果對拍了,說不定就不會出現這樣的錯誤了)

自我預測: \(140 \sim 250\) 不等,高分可能性有點小(也不算極低,看 CCF 的資料咯)
洛谷自測: \(40 + 100 + 8 + 0 = 148\)
\(\mathrm{Hydro \ OJ}\) 測試: \(60 + 100 + 48 + 0 = 208\)