【遊記】CCPC 濟南 2024 遊記

Imakf發表於2024-11-01

Day -???

校內驗題,大家前 45min 都在痛苦面具。

Day -??

提前熟悉了一下這個 CCPCOJ,看了一下它的幫助手冊,發現有一些很神秘的點,比如 cerr 會返回 RE。

Day -?

赤橙黃綠藍紫來驗題,03:58 AK。大概是一邊打,出題組就在一邊觀摩程式碼。

B 寫了個 10 維 dp,然後賽後 uphack 掉了他們 B 題程式碼(

錢哥毒奶:

我感覺有榜情況

沒人 B 會寫 dp 的

J 題寫了個 priority_queue,但是由於手速太快並沒有耽誤 AK。

G 精度爆了一發之後直接 float128 透過。

Day -2

前一段時間 fstqwq 老師在他的電腦上裝了一個 CCPCOJ,發現了若干神秘問題,部分已經得到修復

  • 可以直接程式裡偷取答案檔案。
  • 沒有 wall time limit,一個題能測半小時。
  • 大量交替輸入輸出的題,python 和 c++ 會因為讀入時重新整理緩衝區 TLE。
  • 上傳題目包的時候,可能把含有 check 子串的 solution 識別成 checker。
  • ……

最後因為害怕資料過多造成評測擠兌被噴,削減了資料點的總數。

Day -1

週五晚上坐飛機連夜到了濟南。

Day 0

凌晨入住賽場邊酒店,由於上午就要列印正式賽題面,就把題面又查了一遍。發現了若干錯誤。

  • 中文題面頁首寫成了“2024中國大學生程式設計競賽(濟南)”,但標題是“第十屆中國大學生程式設計競賽(濟南)”,沒對上。
  • 由於 OJ 上題面並不是正常 tex 格式,沒有辦法在正文裡顯示其它 pdf 的內容,所以我們精心畫的向量圖都要轉成 jpg 然後重新傳上去。
  • C 的 checker 用的是 long long,可能會溢位。但實際上我們也不知道這道題的答案上界,嚴謹起見 fstqwq 速速聯絡出題人親自指導修改 checker。
  • ……

熱身賽題目已經印好,所以這個時候檢查出錯也沒救了,於是就不查了。

幹到凌晨 2 點大概終於累到不想修了,也大概沒有什麼遺漏的地方了,大火就回房休息。


然後早上 8 點成功被外面的廣場舞吵醒……發現原本放在枕頭邊上的手機連著資料線掉地上了,一拔一看發現接頭歪了。悲劇。

然後 9 點大家在酒店吃早飯。質量只能說是能吃。

吃完後然後林老師被派去監督列印正式賽題面,剩下逆命跑去賽場坐牢。大概先面見了 SDU 鹿老師,東北大學秦皇島王老師,CCPCOJ 的開發者郭老師等等。然後研究了一下怎麼接入裁判室的內網,連上之後進 OJ 匯入了熱身賽的題目。交了交各種測試程式碼幫評測機熱身,看起來測得不是很快,有點害怕。然後評測組說只開了 1 臺評測機(2 個核),一共有 5 臺所以不用太擔心。

中午氣球組問我們怎麼設定顏色,回覆:隨意。於是氣球組就自己安排了 13 個題的顏色,並且馬上就就把氣球貼在場館的玻璃上提前一天劇透了。然後遇到了典中典問題,怎麼把氣球顏色匯入到 OJ 裡。聰明 fstqwq 曰:“gpt 解千愁。”於是聰明的 gpt 識別出了所有的顏色,並給出了 16 進位制 RGB。拜謝!

由於 zjj 十分無聊,甚至要在裁判室掏出爐石,於是被髮配到大明湖,他一邊遊一邊往群裡發照片直播。然而林老師才是最苦的,每個隊伍有 3 份中文題面 1 份英文題面,每一份題面都有 15 張紙……所以從上午 9 點一直等列印到下午 4 點。最後所有題面都運送到林老師的酒店房間裡。

在列印店坐麻了

下午熱身賽有 5 個簡單題,果不其然 30min 的時候出現了評測擠兌,waiting 衝到了第 3 頁,大概要 2min 才能出評測結果,感覺尚可接受。老練 fstqwq 言:“熱身賽不出問題,正式賽就沒有問題。”

翻看評測記錄的時候,我發現了若干個神秘的 OLE 提交,突然大家緊張起來,趕緊問了問旁邊的郭老師。郭老師回說,他記得 OLE 觸發條件應該是當選手輸出位元組數大於 \(kx+b\) 就會觸發,其中 \(x\) 是標算輸出長度。然而這麼一聽,fstqwq 前輩立刻發現了疑點:那麼 spj 題怎麼辦呢?假如一個構造題,標算輸出一行,但是選手輸出了 \(n\) 行的正確答案,是不是就爆炸了??

大為震撼!

於是我們趕緊先檢查了一下 spj 題會不會真的觸發這個問題,結論是,不會。陷入了迷茫。

最後郭老師查了原始碼發現 OLE 判定其實是這樣的:

if (problem.have_spj()) {
    if (ouf.size() > 30MB) {
        return OLE;
    }
} else {
    if (ouf.size() > 2 * ans.size())) {
        return OLE;
    }
}

由於我們所有題目都是 polygon 包直接匯出的,所以都自帶 checker,正常的輸出都不會遇到這個問題。虛驚一場。

ID AC PE WA TLE MLE OLE RE CE Total C C++ Java Python3
A 308 0 444 249 11 6 49 34 1101 3 973 4 121
B 236 0 391 59 0 3 26 5 720 2 717 0 1
C 362 0 116 103 2 7 29 24 643 13 620 0 10
D 279 0 164 29 2 1 12 5 492 0 489 0 3
E 173 0 500 356 3 7 15 9 1063 4 1058 0 1
Total 1358 0 1615 796 18 24 131 77 4019 22 3857 4 136

這是熱身賽的資料

熱身賽比完,fstqwq 老師被拉去培訓如何匯入隊伍,如何直播外榜等等神秘操作。技術組希望明天由我們自行完成賽前準備。

fstqwq 先輩糾結什麼時候傳正式賽題目,最後糾結著糾結著決定明天一早過來傳題。(flag 確信)

晚上和教練一起吃飯,雖然是同一個酒店,但是不知道高到哪裡去了。

然後我感覺巨累,吃完飯集合了一下就馬上跑回去睡覺了。10 點就睡著了。


Day 1

早上 5 點就被凍醒了一次,接著睡到 6:40,洗了個頭發吃飯就去賽場了。

題傳上去之後給每個題測測速,感覺都挺正常的,然後 rejudge 了幾個題幫評測機熱熱身。但是由於 10 個評測程序都開了,所以一下就測完了,感覺非常穩啊。

fstqwq 先生負責比賽倒數計時,但是好像大螢幕上的時間沒卡準。

比賽開始了。

4min 中山大學4隊開出 A 簽到,接下來就全都是 A 的提交,其他題目依然沉寂。

接著 13min 終於出現了其它的提交,居然是 PKU 的思路開啟送了發 M Wrong Answer???我們一臉震驚。

終於 16 min 的時候福州大學重返未來透過了 J,榜單終於回歸正常了。

接著 BF 被過,意料之中。

但是 D 被 THU 清一色 26min AC 還是有點嚇人。

眼看著榜單開始百花齊放,我們知道比賽終於好起來了。

接下來的時間,就是看看 PKU 和 THU 的爭霸,看看是誰又在看錯題前期交後期題,看看是誰忘記輸出行數,看看大家如何爭奪榜單前列。

4:00 的時候我把所有當前提交資料拉出來做講題的統計資料……

統計完,4:10 的時候,我突然發現榜上 G 有一發提交,點進去是個 RE,並且是掛樣例,但程式碼完全就是正常的計算幾何。我頓感不妙,想起了久遠的記憶

提前熟悉了一下這個 CCPCOJ,看了一下它的幫助手冊,發現有一些很神秘的點,比如 cerr 會返回 RE。

不會……吧?我複製他們的程式碼,註釋掉所有 cerr 後臺交了一發。

AC!

我吐了一口老血,叫來 fstqwq 主裁判觀看。首先向郭老師確認這個特性是否還存在,得到了肯定答覆後,冷靜的 fstqwq 大人說,還是發全體通知吧。我顫顫巍巍地輸入通知,生怕發錯,最後 fstqwq 先生說:記得中英雙語。於是又把中文拿去 gpt 翻了個英文。傳送出去,過了一會,場上傳來一聲驚叫,我重新整理一看,過了……幸好,一血還是他們的;幸好,就算他們第一發提交過了也不會影響排名。

我倒!千算萬算,把這個特性忘了!本來想的是在熱身賽告訴選手這個 OJ 一些可能影響評測的特性,最後還是缺漏了。

驚心動魄的環節結束,最後 15 分鐘,我們又開始擔心評測起來。結果是,就算到最後的時刻,評測機依然輕鬆執行。

ID AC PE WA TLE MLE OLE RE CE Total C C++ Java Python3
A 326 0 82 0 0 0 7 10 425 10 412 0 3
B 276 0 472 38 0 1 15 24 826 16 807 0 3
C 30 0 57 4 0 0 13 1 105 0 99 0 6
D 34 0 126 41 0 0 8 5 214 3 211 0 0
E 48 0 377 4 0 0 19 31 479 4 72 0 403
F 194 0 264 7 0 0 11 7 483 5 478 0 0
G 2 0 1 2 0 0 3 2 10 1 8 0 1
H 41 0 17 8 0 0 1 2 69 0 67 0 2
I 154 0 344 63 0 0 24 16 601 3 596 0 2
J 320 0 160 157 1 0 24 8 670 5 664 0 1
K 0 0 3 0 0 1 1 1 6 0 5 0 1
L 4 0 54 6 2 1 1 0 68 0 67 0 1
M 0 0 117 0 0 1 1 5 124 3 121 0 0
Total 1429 0 2074 330 3 4 128 112 4080 50 3607 0 423

這是正式賽資料

其實比到一半,鹿老師突然跑過來問我們現在已經過了幾個題,我們看看榜說 9 個,然後鹿老師說這次他們只准備了 11 個一血獎牌,所以萬一不夠就尷尬了。萬幸最後恰被過了 11 個題。

然後是講題環節

isaunoya 說你普通話好標準

你是不是在故意隱藏自己的口音啊

怎麼沒有長沙味道了

好像就沒有我什麼事情了。

晚上馬上坐飛機回上海,一切就這麼突然地結束了。

Day !

坐在寢室,在知乎上看看自己的風評。不過好像也沒有什麼人在意。