1. 程式人生 > 其它 >CSP2021 J/S複賽遊記

CSP2021 J/S複賽遊記

同機房同學的:

  1. fffngzzh
  2. lzqy_
  3. SunsetGlow95

10月3日至10月6日

學校組織S組模擬賽,但全都是原題大賽,所以每次都考了\(300+\)

10月9日

開始在機房晚上集訓,刷了一些往年複賽的題目,16日也有打月賽,打了之後比賽情況暴漲50分。

最後三天把黃道綠的模板和部分藍的模板過了一遍。

10月21日

這天是集訓的最後一天,中途教練直接黑屏肅靜,講了一些有關策略的東西:
“你就直接把電腦的桌面改了,檔案讀寫什麼的注意事項全部寫上”。

“一定要記住,不要死磕一道題。可以出去上個廁所,散散心。”

這兩句話是我記得最清楚的兩句話,也是我記得最不清楚的兩句話。

10月23日

J組(8:30~12:00)

7:50進的考場,在那坐了好久都才開始。

我坐在離大螢幕比較遠的地方,我把解壓密碼寫下來之後我隔壁讓我給他看密碼,不會算我作弊吧

直接用30min看了一下題。

T1是送的,寫了之後還寫了暴力對拍。用了不到10min。

之後開T3,不難發現是暴力匹配,我還用類似狀壓的方式儲存每個IP串,時間複雜度\(O(n^2)\),也寫了暴力對拍,用了大概1h。

之後開T2,發現修改次數不多,就每次修改都排個序,並用一個數組存答案。

之後發現每次修改只要讓修改的數左跳或右跳就行了,優化到\(O(n\log n+Q+5000n)\)

用優化前的程式碼對拍,共用1h。

T4感覺沒啥複雜度嚴謹的做法,之後用並查集維護刪除數(用並查集代替連結串列)之後暴力刪,刪完一個就跳到下一個塊裡,如果下一個塊和這一個塊的元素一樣就一直往後跳,也寫了暴力對拍,設初始時有\(m\)

個塊,刪除有\(k\)輪,複雜度就是\(O(n+mk)\),感覺應該有70分,共用30min。

發現T4在隨機資料下好像跑得動\(200,000\),之後又試圖hack也沒超時。

最後不到半小時一直在對拍和檢查檔案。

10月三十日發現前導零判錯了,過不去0.0.0.0:00多半要去世

估分:\(100+100+60(100)+70(100)=330(400)\)

洛谷民間資料:\(100+100+100+100=400\)

10月30日初評:\(100+100+70+80=350\)

S組(14:30~18:30)

考場要求14:00進去,但是14:20才讓我們進機房。

還是一樣用了30min看了看題。

感覺T1可能是奇怪的資料結構,T2是碼量大的區間DP,T3應該是思維題,T4不可做。

之後悲劇性的開了T2。

前一個小時把題目看成“超級括號序列不能有超過\(k\)*”,之後第一個樣例輸出4,直接硬調到比賽開始後1h。

之後思考T1用了10min,因為雖然想聽教練的話,但是我還是想調T2,就沒想出個所以然,用10min寫了個40分的暴力就接著做T2。

重看了T2題面才發現只是\(S\)不能有超過\(k\)*,之後才開始打正解。

20min後打出來了,但是第二個樣例輸出28。我就開始調。

結果考場Dev Cpp不支援除錯(不知道為什麼,上午也有這個情況),只能輸出除錯。

直接調了1h發現ABC這個情況沒有判重,又開始寫,寫了之後發現輸出20,不知道是寫掛了還是有些重複的情況沒有判出來。

又除錯調到還有半小時結束時還沒調處來……就去把T3的40寫了,可能我很暴躁,一個dfs寫了20min。

最後10min我只能絕望地盯著T2的程式碼看著,除了檢查檔案什麼都幹不了。

最後5min我開始回憶被我拋棄的T1,居然想出正解了:用線段樹或某種資料結構算出每個飛機停第幾個廊橋,之後開個桶算答案。

出考場之後發現T2的ASBSC也會重複……

估分:\(40+0+40+0=80\)

洛谷民間資料:\(40+0+40+0=80\)

10月30日初評:\(60+0+40+0=100\),T1多給我20分耶,不過還是沒有1=吧。

upd 11月8日:發現考場上沒看到T3的\(2n\)個數中\(1,2,\cdots,n\)每個分別出現兩次,看到之後就會做了……

總結

J組的T3或許將是我這次的敗筆,被卡掉\(30\)分,雖然我對拍了,但是我沒有拍出這個問題,這說明不能只對拍,還應該自己出資料。

S組是最大的悲劇,T2是一個大坑,而我卻要往裡跳。

最後交上去的程式碼應該去年的我也會寫,也許去年的我還能拿更高的分數。

但實際上如果我處理ASBSC會不會過呢,所以實力其實還是不夠的。而且想到解法不能急於寫程式碼,要先在草稿紙上看看有沒有別的情況,在保證解法正確性、瞭解程式碼細節的情況下開始寫程式碼。

當然,策略也是有問題的,先把T1AC,T3拿40分之後寫T2,這樣可能心態會好些。

而且T3居然還看漏條件了……這說明要仔細看題,不能看漏題目條件。

教練的那兩句話,我真的有記住嗎……

初中的OI比賽也就差不多結束了,接下來還要中考呢,能讀我們學校高中部就最好了。

這次也不過算是一次試水吧,雖然這一年中所有學習的東西幾乎都沒在比賽中用到。

希望中考後我還能再回到機房,再次看到那些熟悉的面孔。

整理一下

  1. 不能只對拍,還應該自己出資料
  2. 想到解法不能急於寫程式碼,要先在草稿紙上看看有沒有別的情況,在保證解法正確性、瞭解程式碼細節的情況下開始寫程式碼
  3. 要儘可能保持良好的心態,卡在一題上可以出去散心
  4. 不能一直執著於一道題,學會取捨
  5. 要仔細看題,不能看漏題目條件