【World Finals】2023 ICPC World Finals

  

簡介

The ICPC International Collegiate Programming Contest,是由大學生參與的演算法程式設計競賽。以三個人為一組代表大學參賽,解決現實中存在的問題,培養團隊合作、創造力、創新以及在充滿壓力的環境下實作的能力。透過訓練和比賽,團隊間互相挑戰以提高可能性。是世界上歷史最悠久、規模最大、最負盛名的程式競賽。

隊伍組成

National Taiwan University, Team 8BQube
蔡旻諺(baluteshih
蘇柏瑄(briansu
鄭忠宜(icube

不推薦未來有志向比 ICPC World Finals 的選手們繼續往下瀏覽這篇文章,以防暴雷

成果

$\color{green}{A}$ $\color{gray}B$ $\color{green}C$ $\color{green}D$ $\color{gray}E$ $\color{green}F$ $\color{green}G$ $\color{green}H$ $\color{green}I$ $\color{red}J$ $\color{gray}K$

Penalty:962
Official Rank:14

題目

(待補)

比賽過程(省略題目敘述)

開場我先坐在電腦前面登入,然後我就打錯了兩次登入密碼,才發現我把 manger 打成 manager,這是我的錯嗎(X


設好環境之後就默默讀題,第一題看了 G 但看太快還以為是在隨意的一般無向圖上按,就先放著,然後我就繼續讀 H,讀到一半 A 就被東工大全場 first kill 了,蘇柏瑄也同時跟我講了一下題,聽起來不難但感覺很煩躁,我們也耐著性子繼續看有沒有其他能做的題。


鄭忠宜這次的策略是一直讀題直到確定哪題可以做,所以他還在繼續讀,我跟蘇柏瑄則是稍微討論了一下 A 後,覺得可以先放著繼續看,我就繼續把 H 讀完,並認為這是一個大概不難的題目,跟蘇柏瑄講。


講完 H 後就發現好像沒那麼單純,但大概還是能做,一樣先擺旁邊,這時候 I 也被開掉了,聽鄭忠宜描述感覺就是個純純的積分題,猶豫了一下我決定讓鄭忠宜把這題搞定,因為這大概是一道確定能做、不用花太久就能搞定的題。


再一陣子後我重整了計分板發現百花綻放,A, D, G, I 都有人開,G 是我剛剛看錯以為很難的題,趕緊跟蘇柏瑄講了一下 G,發現我就是純看錯,拿著自己想了一下後發現其實就是水題,我就說我可以先開始寫,蘇柏瑄則是繼續處理 A。


G 寫到一半鄭忠宜就突然說先寫 I,我就完全聽命於他,接著他就說這題是要輸入 n*m 個數字,我照著他說的開了一個陣列存起來,他就說輸出這些數字的平均,我一聽覺得很詭異,但還是邊嘴砲「蛤這真的是 WF 題嗎」邊相信他就過範測了,一傳


—pI AC 0/27


還真的啊,太白癡了吧XD


接著我繼續處理 G,一旁的兩個隊友開始討論起 A 來,我自己認為 G 沒有很難寫就寫完了,不過寫完的時候還是掉東掉西,編譯下去漏了不少白痴宣告。


現在想想,或許我在這時候內心是非常緊張的吧,但長久的競賽經驗讓我忘了這股緊張感,反而壓抑在心裡感受不出來。


這時候我們就迎來了第一個 WA


—pG WA


這時候蘇柏瑄說 A 其實已經做完了,他可以先寫,我就把位置讓出來,拿到印好的 G 後開始 debug,但看一陣子也沒看出來,就跟鄭忠宜講題目跟作法請他幫忙,我去想 D。


不過 A 很快的樣子,蘇柏瑄沒多久就寫完了


—pA AC 0/55


接著他就下來想 H。


D 看完後我想了一下有沒有什麼建模好方法,但怎麼想 case 都很多,就突然來了謎之自信覺得大概就是三分搜套三分搜,而且 21 分鐘就有人過了,怎麼可能不是這樣,就跟鄭忠宜嘴砲說這不就是三個 U 型函數加起來,但他說如果有不合法路徑怎麼辦,我多想了一下就覺得那肯定就會有更小的值,因此這題的作法就定案了。


而這途中蘇柏瑄也提出了 H 的關鍵想法,因為非常有道理,也是他擅長處理的細節題,就放心的交給他把剩下的東西處理完,因此他就開始寫 H 了。


過一陣子鄭忠宜表示 G 有地方沒清空,我趕緊上去改完。


—pG WA


還是錯,但我沒有因此慌張,只是緊張感大概沒有消去,所以我可能沒有冷靜的想一遍問題到底還有什麼。


蘇柏瑄寫到一半表示他有東西需要想清楚,就先下機讓我上去寫 D,寫到中途鄭忠宜就跟我說了他又找到 G 的 bug,是剛剛的 bug 沒改齊全,我一傳


—pG WA


鄭忠宜表示他沒了,順便嘴砲說我 code 在亂寫,我說我等等直接對拍好了。


回到 D,D 的三分搜真的非常好寫,所以我蠻快就寫完了,不過測範測沒過,我就直接印 code 下來 debug,讓蘇柏瑄回來寫 H。


沒多久我就看到有地方複製 code 沒有改好,改完之後卻還是輸出一樣的東西,我蠻困惑的,多看一下就發現最底層三分搜的回傳值在亂回傳東西,改完就過範測了,一傳


—pD AC 0/86


總算過了題,但 G 還是沒過。


沒多久蘇柏瑄的 H 也搞定了,他一傳


—pH AC 0/89


這四題就成功讓我們在這刻回到了牌線,表示到這裡我們並沒有落後太多。


接著我就上去開始火速寫對拍,寫完一對馬上就找到了問題,改完再對拍沒發現問題就傳


—pG AC 3/98


雖然被加了不少 penalty,但這時候還是有救的,趕緊開始處理接下來的題目。


這時候其他被開掉的題目只有 C、F,蘇柏瑄確實在處理看起來一臉就是他的 F,C 則是我跟鄭忠宜確認後開始想,但感覺是數學題,所以我有點想鼓吹鄭忠宜一起想我稍早自己看有看到覺得是經典題的 J,這題 c=2 的版本大家都會,然後我有薄弱的印象跟 wiwiho 在路上討論過這題的推廣版本,結果在這裡就出出來了,可惜當初沒有去查清楚QQ


在糾結了一陣子後,蘇柏瑄提出 F 好像就只有 8 種開始的方法,所以窮舉後接著就是一直做一樣的操作,我跟蘇柏瑄表示這聽起來一定是正確的方向,要不就先開始寫 F 的模擬,搞不好可以看出些什麼,他同意後就開始寫了。


蘇柏瑄寫 F 的過程就是我一直跟鄭忠宜嘴砲 J,甚至把他拉來想,但沒想出完全;鄭忠宜則是過程中還是有分心回去想 C,然後他就說了一句有沒有可能就是 LP,我就跟他說我修了高等演算法,所以如果有 LP 式子我可以對偶看看,但他這時候還沒想清楚。


再一陣子蘇柏瑄寫完 F 的模擬了,他同時也發現 F 會有若干循環節,只要檢查這些循環節能不能湊出要求的指定狀態就好,而這很明顯就是中國剩餘的經典題,但我一時沒想到怎麼做,不過最後肯定是要找這些環的,我就繼續讓蘇柏瑄開始寫把循環節都找出來的 code,我直接做這個子題。


把子題拿去問鄭忠宜後他就說不就每個質數分開做,一聽非常有道理,我就跟他把流程順過一遍後跟蘇柏瑄說做完了,他說不然先讓我寫 oracle,他把一些細節想清楚。


同時他也跟我確認了一些複雜度的細節,就說這應該是一個字串的子題,並跟鄭忠宜確認後決定拿 Z-value 去看。


等到我把 oracle 寫完後就換蘇柏瑄回來寫,這時鄭忠宜跟我說 C 就只是解某個 LP 式子而已,我看了一下把對偶寫出來就說這是半平面交,所以這題做完了。


等到蘇柏瑄 F 寫完後,我看了一下自己的 oracle 發現在亂寫,改了一下沒問題就傳


—pF WA


居然是 WA,蘇柏瑄二話不說開始寫生測資的 code 處理,然後就用 sanitizer 抓到是我在爛,我看了一下發現我是真的很爛,改完之後跑一陣子沒問題就傳


—pF AC 1/197


這時我們又成功回去牌線了,而我在這裡宣告我們要再開兩題,然後再開三題肯定有牌,而我手上有 C,所以我跟蘇柏瑄說他要再開一題,可以去聽聽 J 的想法。


我就開始埋頭苦幹 C,老實說這時候我腦袋可能已經有點昏沉了,大會給的食物又很少,這讓我 C 寫到一半以為我很難全整,但只是我沒盯出來不等式有很好的兩點式 form,渾渾噩噩寫完後測範測錯得亂七八糟。


我同時跟隊友們表示 K 可能也可以做,讓他們兩題選一題,但他們好像覺得 J 比較能做就把時間花在上面


這裡有個可惜的點,就是他們一直都沒有發現 J 是沒人過的,我以為他們知道就沒講出來,實屬可惜,但一部分也是因為我信任他們是可以做出題目的,J 不是沒有希望。


我把 C 修了一陣子後終於過範測了,但也封板了,一傳


—pC WA


就進入 debug 環節。


蘇柏瑄表示 J 疑似有作法了,是很漂亮的 O(n^2),但他們沒有 100% 正確性的自信,但就先讓他們寫。


我 debug C 時感覺只能是精度問題,或是 INF 開不夠大,本來想說開 1e10 傳看看但感覺不能這樣做,可是改 long double 又會 TLE,只好多想一下哪裡可以改進精度。


J 好像也沒寫多久蘇柏瑄就寫完了,一傳


—pJ WA


他們也同時開始 debug。


沒多久我就發現原來 C 這些不等式有很好的兩點式 form 可以維持精度,但我不知道是怎樣沒有想要直接改成 almost 全整,而是選擇改了就再傳一次


—pC WA


我沒想到的是這發 WA 最終成了我們的敗筆。


再過沒多久我就決定開始著手改成 almost 全整了,把會噴出 __int128 的範圍交給 long double 判斷。


改完之後再傳


—pC 2/290


過的當下我還是很興奮的,這才是刺激的比賽呀。


最後 10 分鐘蘇柏瑄跟鄭忠宜努力的在找 J 還有什麼問題,但實在是看不出來,只好亂改亂傳了,幾次都是 WA。


比賽就這樣結束了。

留言

這個網誌中的熱門文章

【心得文】高中資訊競賽,回顧心得文

【World Finals 團練紀錄】2021 ICPC World Finals