1. 程式人生 > 其它 >CSP 2021 提高組遊記

CSP 2021 提高組遊記

說點什麼好呢。 目錄

前言

本來不是很想寫的,但轉念一想,自己可能也沒剩下幾次寫遊記的機會了。權當作紀念吧。

\(\text{Day 0}\)

因為明天有考試,於是 \(\text{10:15}\) 就早早下了班,好耶!只是最近精神有些恍惚,感覺效率極低。

\(\text{Day 1}\)

昨晚睡了 \(8\) 個多小時,眼睛都給睡腫了,但上午還是好睏。早上覆習了字串,又做了幾道水題練練手,順便奶了一口 \(\rm csp\) 不會考網路流(伏筆。

去考場的路上在車裡哼了一路的歌,心情 \(\text{up up}\)。於是又困了,所以在車裡睡了一會兒,陽光真的好舒服~

然後就是常規操作:合影,看小姐姐(今年 \(\rm bs\) 有個超白的妹子!。

進考場,發現那個超白的妹子和自己一個考室,好耶!找自己的位置,震驚地發現已經有人坐了?於是我 腦抽 地問那個同學:"這是你的位置嗎?" 他看上去非常疑惑,但還是給予了肯定的回答。我一看他的考號好像是自己的考號加 \(1\),突然就意識到自己可能看岔了,急忙跑回去,發現自己果然看岔了。有種不太好的預感…

回去時旁邊的人都開始敲模板了,試了一下系統還是 \(32\) 位,所以也沒花時間配置。直接開題。

先看 \(\text{T}_1\),廊橋分配?一看題,嗯這竟然不是一眼題?再看,嗯這是貪心?艹模擬賽貪心就沒做出來過,危。於是看部分分竟然只有 \(\text{40 pts}\)

,不過還是比較好拿的。然後再看 \(\text{T}_2\),看看資料範圍就知道是區間 \(\mathtt{dp}\),目測有一個部分分是 \(\mathcal O(n^4)\) 的,然後加一個優化就可以過。開 \(\text{T}_3\),感覺是道構造題啊,部分分和正解沒啥關聯,於是跳了。

\(\text{T}_4\),我直接開幕雷擊,不過當時的自己並沒有看出來這是網路流,只是單純地覺得 "射線" 有點難理解,於是手玩了一下樣例,因為覺得自己肯定做不出來,所以打算先從這題開始寫(?,嘗試使用 \(\mathtt{dp}\),先開始以為 \(n,m\le 18\) 可以使用這樣的 \(\mathtt{dp}\)

:令 \(dp_{s,i,0/1}\) 為上一行狀態為 \(s\),這一行到 \(i\)\(i\)\(0/1\) 顏色的最小值。然後開始寫寫寫,寫到 \(\mathtt{dp}\) 部分發現這個做法假了,但當時心態還算穩健,於是改成 \(n,m\le 5\) 的那一檔部分分,心想 \(\text{10 pts get}\)

大概過了三四十分鐘?轉回去想 \(\text{T}_1\) 的正解,當時很想預處理 \(f_i\) 表示 \(i\) 個廊橋可以存放多少飛機。心想這不好做啊,一個飛機停與不停影響了後面的飛機,先到先得(這某種程度上是一個重要的性質,但也是我悲劇的開始)。思路開始滿天飛,感覺從這裡開始腦子就一團漿糊了,我在想能不能轉化成圖論問題,嘗試連邊,發現假了,狀態根本不能繼承。於是我開始想 "先到先得",我突然覺得,好像 不可能出現 "左端點更左的飛機不能停靠,更右的飛機停靠成功" 的情況欸!成功忘記自己發現的第一個結論。然後碼了一個線段樹,順利過了第二個樣例,第一個樣例少了 \(1\)?當時開始有點慌,害怕自己寫假了,畫了畫國際航班,發現自己果然寫假了!穩了穩心態,\(\rm rush\) 了個暴力,看了一下表發現還剩大約兩個小時?開始做 \(\text{T}_2\)

發現果然有一個 \(\mathcal O(n^4)\)\(\rm nt\) 部分分,於是開始碼。還是調了一會兒,搞了幾個邊界情況的鍋。發現過不了第二個樣例,又調了幾個鍋,還是過不了,冷靜了一下發現自己算重了。當時真的人麻了,連著寫了三個假演算法,就是後悔,非常後悔。然後自己就呆滯了一會,期間感到左邊的 \(\rm xxs\) 一直在看我螢幕,還特意把擋板往裡面推了一點,心中不爽值 \(\text{up up}\)。稍微平和了一下心態,突然發現可以再開一個數組相互轉移,於是開始寫,寫完還是過不了,我開始懷疑自己是否能調出來,於是跑去寫 \(\text{T}_3\)

推了結論後就開始寫 搜尋,寫完調了一會 無壓力 過了 \(n=20\) 的樣例。我當時竟然還蠻開心,想著 "這個搜尋還蠻快嘛![1]"。於是回去肝 \(\text{T}_2\),最後也沒有調出來。

一出考場就看見 \(\text{ET}\) 標誌性的露出白牙的笑容,聽見低年級的同學討論 \(\text{T}_1\) 的做法 —— 大家好像都會做前兩題。突然就有些繃不住了。剛剛陽光的心態瞬間跌入現實。

慶幸教練沒有像 "小夥子" 一樣在考場外問考試情況,雖然我知道自己逃不過這一劫。我只是害怕再回想自己真的繃不住,太丟人了。

總結

  1. 在想題時,要有將思路、題目重要條件記錄下來的習慣,不然會有忘記結論的風險。
  2. 想出 "做法" 後,一定要代入小樣例檢查,可以減少許多不必要的時間花費。
  3. 程式碼能力還是太弱,悲劇的是自以為有了進步

後記

就像一句歌詞裡說的:"\(\text{I like to think I'm unique.}\)",不過事實上,不知不覺中,自己已經變成了一條被緊緊包圍的沙丁魚。沙丁魚的滿足,就是幸福的時光多於苦痛吧。

不過,那一天最精彩的故事還沒有開始,那也是一個祕密。


  1. 後來發現自己從裡面開始考慮就是正解了,只是當時慌得一批,根本沒有多想。 ↩︎