賽前
數了數,這是我第五次來南航,不知道以后還有機會了(2018 NOIP, 2019CSP, 2020CSP, 2020NOIP)。
上午一覺睡到 10 點,學了一下感覺很有用的 BIT 倍增,順手拿了究極卡常題冰火戰士的最優解。
大概一點鍾的時候就到了實驗樓門口,天氣不錯,陽光曬在身上很暖和。估摸着要等四五十分鍾,於是先在實驗樓旁邊的操場上鍛煉了一會,然后排了老長時間隊。
沒有看到同級的 ycx tzc ymx lxr csy 等人,估計他們在 1 號教學樓考試。不過倒是碰到了高二神仙(jgh syr djq)以及 dxm,我直接狂暴膜拜!
賽時
S103 考場,座位號 42(不知道附近會不會有認識我的老哥)。
1:50 進考場,光速打了份缺省源和 IO 板子等待下發試題。
2:25 下發試題,正序開題先看 T1 發現是簽到直接開寫(比賽還沒開始就寫代碼會不會被判犯規啊,大霧),測完大樣例是 2:35,感覺還不錯。
2:35 看 T2,題意看錯后(本來以為 \(n\leq 10^5\) 是道神題,看完數據范圍哈哈了)直接莽了一個 \(n^3\) 序列 DP,2:50 發現連樣例都過不了,糗大了糗大了。冷靜下來重讀題面發現讀錯題了。感覺像極了區間 DP ,所以根據題目限制重構了代碼(\(f_{i,j}\) 表示答案,\(g_{i,j}\) 表示 AS 的個數)結果過不了第二個樣例。
3:10 一直在想哪里會算重,想了大概 15 分鍾才發現 ()()() 會被我算兩遍,哈哈。思考了一下如何補救,發現只需要再搞一個 \(b_{i,j}\) 表示最外層是括號的方案數就行,抱着試一試的心態改了改代碼發現啪的一下過了樣例,很快啊,上來就是一個樣例 3 一個樣例 4,全部防出去了啊。測了一下極限數據要跑 1.1s,很慌,所以把遞歸改成了遞推順便卡了卡常卡到 0.5s 就扔了。
3:45 開 T3,乍一看沒啥頭緒,想到枚舉第一個是 L 還是 R 把序列分成兩段之后就不難做了。上個洗手間冷靜了一把回來 10min 寫掉並過了大樣例,以為穩了(實際上大樣例 \(n\) 全等於 \(20\) 沒看出來上面犯的錯誤)。
4:30 看 T4,題面直接把最小割給寫臉上了,然后我一想 \(k=2\) 這不是狼抓兔子么,能不能用平面圖最小割轉對偶圖最短路的思想切掉這題,發現不是很會,所以寫了個多源匯(我甚至不知道怎么寫多源匯的網絡流,只能憑感覺)Dinic 直接過了大樣例,樣例 4 要跑 130ms,5 要跑 5s,能拿 60,可以接受可以接受。
5:30 打算動手寫 \(k=2\) 的部分分,發現寫起來有點麻煩(實際上一點也不麻煩,只是我想復雜了,一直在想狼抓兔子的一個源一個匯,但實際上可以把周圍一圈都分別看成源和匯,說不定這樣就能想到正解了)就棄掉了。
5:50 再檢查了一下四題能不能過大樣例,懶得寫對拍(唉)就玩起了掃雷一直玩到比賽結束,南航實驗樓 Win7 系統有游戲,好評。
賽后
出來的時候又去操場跑了 1km,算是給自己的一個小慶祝。是不是所有大學晚上操場都會有一車情侶啊,大霧。
跑完碰到了 djq,和他交流了一下 T4 正解,居然是區間 DP + 最短路,我直接狂暴膜拜!
后面和一眾同學交流了一下估分,ycx 和我一樣 360,tzc T3 沒想出來只有 72 332,其他人就不知道了。
拿到代碼才意識到 T3 要掛大分,當時還挺難受的,不過很快心情就平靜了下來。首先,CSP 不選省隊沒啥好難過的,又不是要退役;其次,這次掛分給了我血的教訓,吃一塹長一智;此外,我在賽場上很快做出了這道題目,這讓我對自己的水平以及接下來的 NOIP 有了一定信心(雖然是風格非常 codeforces 的萌萌貪心題)。
infoj 測出來是 \(100+100+32+80=312\),洛谷民間數據是 \(100+100+8+[95,100](\text{Dinic 有 95 就挺離譜的,感覺是數據水了})=[303,308]\)。加一個 ans[(n << 1) + 1] = 0 之后是 \(100\)。
實際上 T3 在哪測出來的分數都不具有任何參考意義,因為我這題的分數相當於 \(\mathrm{rand}\bmod 101\)。當然,寄希望於出題人造數據不出現 \(n\) 的逆序對既不現實也沒必要,至少我會做,這就足夠了。所以,CSP-S 2021 就這樣吧,不算成功,也沒啥好可惜的。
出了分數之后會小更一下。
出分
我超,西西艾弗!T3 給了我 \(72\) 分!
\(100+100+72+60=332\)。
