THUWC 2019 遊記
Day 0
乘高鐵至廣州。一切正常。
複習了會兒費用流模板。
祈禱,能取得理想的成績。
Day 1
走進廣二校園,試機、合影。
校園環境頗佳——大門兩側,可看見綠樹成蔭、聽得水聲潺潺;中間,則是空曠的廣場,背後THUWC的橫幅在陽光下格外耀眼。
不過,一心都在這對我OI生活意義非常的考試上,也就無暇顧及了呢……
13:30,準時開考。
Text Editor不自動縮進差評。
看T1,開T1。抱着“打個60~70分過”的念頭,推了三五分鐘式子,卻發現是個區間向量和點積——怕不是莫隊裸題。最後一個subtask, n <= 5e4, q <= 1e6?忽而想起使用均值不等式調節分塊大小即可將時間複雜度降至O(n * q^(1/2))——於是,嘴巴AC。
20min會T1,信心滿滿。
時間還很充裕,先看看其他題吧——T2極長的題面令我望而生畏,倒是T3的計數,看起來更可做些。
推T3,隱隱感覺存在一個O(n^6)做法——O(n^4) DP,接着球O(n)個O(n^2)次多項式的卷積——雖不一能AC此題,不過至少能得不少部分分吧。於是,心裏踏實了。
比賽已開始一個小時,細節仍未展開,便去寫了T1。
1.5 h,過樣例提交,TLE。
又過了約十分鐘,發現了塊大小可能是0後,PP(pretest passed)——幸虧是IOI賽制,不然後果不堪設想呢。
於是便去做T3,想了近一個小時,卻沒發現任何可優化的地方。只好把O(n^6)微調成O(n^2 * m * (n + m)),預估分75。
3h,T3 PP。
覺得100無望,便暫時跳過只有10分的O(n^6)做法,去肝T2。
這題分兩個subtask——好不容易讀懂了題目,便覺得60分的subtask 1比subtask 2簡單得多。稍作思考,認爲是重構圖整體二分 + DSU,在草稿紙上構造了一波建圖的方式,便開始寫subtask 1的整體二分。
4h,過樣例,提交,全WA。
發現了一個顯然的錯誤,再交,全WA。
仔細研究題面,忽然意識到雷雨並不會直接影響機場,修改,再交,全WA。
有些自閉了——總覺得,以這次THUWC D1的難度,得200分纔可以穩……於是,心情變得無比緊張。不停地手造數據。
直到當比賽倒計時進入30min後,程序,在手造數據上WA啦!
發現是建圖方式的鍋,rush一波,15min,57.6。
最後一個subtask的60%,WA?
苦苦思索,不知爲何。
分數,定格在232.6 = 100 + 57.6 + 75。
T3 O(n^6)未寫。
比賽結束。
賽後才得知T2 WA是數組開小的緣故——仔細算了兩遍節點個數,可還是少算了2e5。
問了問周圍選手的成績——LK 210 = 100 + 100 + 10,MYH 239.6 = 100 + 39.6 + 100(順帶結識了兩位神仙)。YHT不太理想,175 = 100 + 0 + 75。
看來比賽的確不難,題題都有人A呢。
自己的成績,想必雖不是特別理想,但也還行吧。
晚上切了道水題,便睡了。
Day 2
本以爲會變得很難,誰知T1還是一眼秒的題——直接線段樹合併。
有些擔心n = 5e5的線段樹合併不靠譜,便繼續思考了一會兒,意外發現:離線 + BIT也能得到一樣的時間複雜度且常數更小。
於是寫,1h PP。
開交互題T2,想T2。
第一眼以爲是點分治,卻一直沒有思路。突然發現subtask 5中的詢問次數是線性的,便改變思路,按層次遍歷去找每個節點的parent——便會了前58分允許第二類操作的subtask 1~5。加上subtask 6的暴力,2.5h時70分到手。感覺100有些困難,便開T3。
披着計算幾何外衣的DP題?
決定上下凸殼分別DP,O(n^4),58。隱隱感到可以用類似斜率前綴和的方式優化,以爲不可寫,也就沒細想。至於奇怪的subtask 3——寫完DP後再說吧。
3.5h,寫好,提交,WA。
手測找不到鍋,突然發現有大樣例,於是打開,WA4。
然而怎麼調都調不出來。
4h。
4.5h。
4h45min。
越來越慌,不知所措。
絕望地,寫了個暴力。發現自己球出面積零次方和沒有問題,一次方和卻不對。
再想起先前自己手測的數據,盡是三角形、四邊形——
思路豁然開朗。
4:59:30。
發現問題所在!
4:59:59。
比賽結束……
問題,竟是我用每相鄰三個頂點的面積之和當成了多邊形的面積。
惋惜,悔恨,不知所措……
問了一些人的分數。LK 180自稱爆炸,YHT 100 + 100 + 64.8恐成最大贏家。
至於兩天最高分之類的,暫且沒有管——畢竟,還有Day2+呢。
Day2+
懷着滿心憧憬打開了這道【學習型題目】,卻立刻有了一種要涼的預感——似乎純粹是碼農題,考察點不明。
硬着頭皮看完了整篇材料(不包括References),才發現最後幾個點還是有算法含量的——只是擔心自己沒時間寫到那裏。
——也的確沒時間寫到。
看完論文,時間已過去一小時有餘;而當我寫完前兩個送分subtask時,比賽已進行一般了。
對比subtask 3, 4,覺得subtask 4更容易判斷正確性,便開寫。
經歷了各種我都不曾想到的調試,1個小時後,PP——雖無法及時提交,可既然subtask 4的內容是點陣轉PNG,那麼只要返回的PNG圖片可以打開且不是亂碼,就說明程序沒鍋了吧。
剩下半小時,試圖寫subtask 3,以RE失敗告終。
得分100/300。
問了下幾位認識的選手以及WC羣,發現大衆分100。(不過大家似乎大都是subtask 1 + 2 + 3?)
QZR 190,orz。
題外話:建議以後的學習型題目增加考試時間或適度降低代碼量——至少我認爲,這題原先設定的區分目的並未達到。
Day3
上午面試。自我介紹,順帶提了下我對THU的嚮往。英語短文朗讀 & 翻譯,猜到blockchain是區塊鏈並憑感覺(似是而非地)譯了一波。(可能是因爲我初二)我並沒有被問到奧數題。
一個下午,看YHT打CS【霧】。接着就是頒獎——收到一張【一等獎】以及一份【最優惠】協議——據稱這和從前的【無條件一本約】等價,不過,鑑於未來幾年的自主招生政策仍是未知,我也不知道這張紙能否讓我有學上【霧】。
放鬆一下,準備迎接次日的NOIWC 2019。
自此,結束了人生中第一場THUWC。
並沒有像預想中一樣思緒萬千。
總結
這次THUWC,收益頗多。
除卻那張【一等約】,作爲我首次參加的全國性的高端OI比賽(儘管隊爺們不打),THUWC 2019本身就是一次繽紛的體驗——結識LK, MYH等知名OIer;第一次在體育館進行OI比賽;第一次與THU的老師近距離接觸……無疑是我OI生活中彌足珍貴的。
至於我的比賽情況,只能說,“說得過去,但稱不上出色”。總結幾點:
- 比賽過程中並未出現致命的細節失誤(如忘寫文件等);
- 比賽策略基本無誤,暴力&正解,思考&寫碼的時間分配基本合理。
以上,我的發揮還是比較穩定的,想必與先前對穩定性的訓練及對“中國式OI題”的適應訓練有關吧。
然而也有不足之處:
- 提前幾天纔開始熟悉比賽環境,有些倉促;導致不會用各種自帶IDE/代碼編輯器不說,Text Editor也不是非常習慣,使編程速度下降。
- 可能是前幾天的題都咕着沒寫的緣故,寫代碼的一次性正確率不高,導致debug用時長、後期幾乎沒時間去想正解;同時,多題未能一次性PP,雖然在近似IOI賽制的THUWC中影響不大,但若是NOI賽制則可能導致崩盤。
所以說……
以後非假期拒絕各種頹,好好寫題吧。(願flag不倒,捂臉。