2017 ACM區域賽(西安) 參賽流水賬


day 0: 

   周五, 鴿了概統課,早上和紫金港的幾位小伙伴一起打車去蕭山機場,從咸陽機場到西北工業大學坐了五十多個站的公交車,感覺身體被掏空。晚上在賓館本來打算補之前訓練的一個題,想想還是先花個十來分鍾把數據結構課的作業做了吧,結果寫出了奇怪的bug,debug兩個多小時還是沒有找出原因,心態爆炸(我還是退群吧),於是和一堆學長去樓下吃了夜宵(鍋盔+羊肉串),快一點了才睡覺。 感覺賓館有些垃圾,被單出現了不明血跡,熱水壺里滿是黃色的銹,馬桶半天才能沖一次,水龍頭里出來的水是黃色的,無力吐槽。

day 1(熱身賽):

   早上七點多起來吃早飯,然后做了下管理溝通課的小組任務,中午走路半小時去學校吃午飯,路過了“北大村”,“東大村”,感覺非常厲害。兩點開始開幕式,感覺開幕式效率非常高,十多分鍾就完事了,然后大家到比賽場地試機。一上來就發現我們的鍵盤沒有Tab鍵,十分糟糕,讓志願者給我們換了個鍵盤,但是鍵位分布比較奇怪,嚴重影響手速,有些糟糕。由於西安沒有python,只有java,我和Johann強行甩鍋給reku學長,雖然經歷了一些坎坷,reku還是成功寫出了a + b的java程序。  發題后,我一看A是個娛樂題,已知n, 求 x ^ n 。 x是未知的,是題面中出現的某個日期,要我們猜。 我和reku說了題意,先上去敲了快速冪, reku覺得2017這個日期藏得最隱蔽, 熱身賽剛開始,我就交了一發,結果發現Run ID 已經是18了,不過竟然一發就猜對了。 過了一會兒,志願者小姐姐過來發了氣球,我們竟然是一血,感覺是有生之年系列。。。 之后Johann上去寫B題,是個大模擬題,我和reku看了下C題,發現和七月集訓cjb組出的一個題幾乎是一樣的,非常開心,就開始在邊上扯皮摸魚。Johann過了B之后,我上去敲了個暴力找循環節,發現和cjb的那個題有些不一樣,每個數需要走若干步才會進入循環,cjb組的那個題是每個數本身就在循環內,全隊瞬間懵逼,開始大喊“gtm cjb”。  之后打表發現每個數只要走不超過6步就可以進入循環,覺得可以暴力前幾步,然后再轉化為cjb的那個題。  最后線段樹維護出了鍋,WA到死,看到榜上這個題已經被A穿了,覺得估計是暴力就可以過了,試了下還真過了。 最后半小時把時間留給了reku測環境。

    回到賓館把熱身賽C題重寫了一遍,找到了bug。然后開始做概統的網上小測驗,室友告訴我每個人的題都是一樣的,然后把答案發給了我,我點開后把第一題的答案選好,這時候reku說了聲:“學長這么快就AK掉小測會不會被老師查水表啊”。我覺得很有道理,打算過一會兒再把答案抄上去,於是先去補了上周訓練的題,折騰到九點多總算A掉了,突然發現小測忘做了,喜獲1分。 睡前和reku在賓館里看電視,在放非誠勿擾,男嘉賓1:我從耶魯大學畢業。男嘉賓2:我剛從硅谷回來。 男嘉賓3:我是兩家公司的CEO。 女嘉賓1:我已經保研了。 女嘉賓2:我也已經保研了。   不禁感嘆我們這種單身狗連相親都不夠資格,還是洗洗睡了吧。

 

day 2(正式賽):

   9點開始的比賽,7點10分就要坐車去學校,然后在體育館冰冷的凳子上坐了一個小時。比賽開始后,Johann很快發現B是簽到題,寫了發貪心,交上去喜獲1WA,我們三個人盯着看了五六分鍾沒看出哪里錯了,后來才發現應該開的multiset而不是set,過掉B題后看榜排名都100+了,還有一個F題也有好幾個隊伍過掉了,於是reku和Johann去開F,我繼續看別的題。過了一會兒,reku給出一個DP做法,johann發現有環不能搞,我丟掉手上的題也來一起想F,發現好像也不會做,於是陷入僵局。看到F漸漸被A穿,G也有幾個隊伍過了,心態有些爆炸,好在之前訓練我們前期也總是爆炸,三個人都還算冷靜。  我去看了下G,發現只要按位考慮搞一搞就好了,寫好之后交上去WA了,開始懷疑人生。再看了一遍題目,發現題目第二頁說答案需要mod 1e9 + 7, 加了個取模就過了。  這時reku和Johann猜了個F的結論,決定試一試,寫了一發竟然AC了,我接着上去寫了H的線段樹貪心,1A,我們隊一下子從1題變成了4題,變成了第6名,三個人的心態都漸漸好起來。  我又去想了下A,發現應該只要線段樹維護線性基搞一搞就好了,復雜度也沒仔細算, 把H題的線段樹改了改就准備交,reku過來瞅了幾眼,發現了一個小錯誤,改正后提交1A。 我寫A的時候 reku和Johann討論出了J題的做法, reku接着上機寫,Johann在邊上看着reku寫,我去看剩下分別有一兩個隊伍過的E,I,K。  E我一看就感覺屬於我們隊能力范圍之外的題,接着看了I和K,發現好像都不會做。  reku寫好了J,發現樣例非常巨大,敲了半天之后發現哪里多敲了一位,頓時心態爆炸,甚至打算不測樣例直接交, 但被Johann按住了。 Johann上來繼續敲樣例,reku打印了代碼先肉眼查錯, 我繼續在邊上摸魚。 敲完樣例后發現過不了第二個樣例, debug一通提交1A, 然而我對E,I,K還是沒有任何思路。 我把K題霍爾定理引出的小結論和隊友講了,然后Johann提出了一個比較妙的轉化,reku提出可以莫隊 + 線段樹,這樣復雜度是O(nsqrt(n)logn),感覺不穩。但是三個人討論了半天也沒有討論出更好的做法,於是決定我先寫着試一試,寫好之后交了一發果然T了。   然后我和Johann發現I題好像也可以用莫隊搞一搞,reku掏出了莫隊的板子,我說”莫隊很簡單的不需要板子”,結果我就把莫隊寫錯了。 到最后一小時封榜我們還在debug I題,最后只剩半小時了 reku掏出莫隊的板子,發現和我的有些不一樣,然后才發現莫隊寫錯了,改正后提交, 三個人盯着屏幕大喊“gtm cjb“, 終於過掉了I。 最后半小時reku決定亂搞K題, 加了一些奇怪的判斷並調整了塊的大小,終於把TLE變成了WA,可惜直到比賽結束也沒找到錯誤。 最終7題 rank 17 打出GG, 不過第一次區域賽就拿到了Au還是挺開心的,reku學長也彌補了去年的遺憾。

   

教訓: 感覺我們隊應該是可以過8個題的,I題我的失誤有點大,千萬不能對自己的能力過於自信,既然有板子就把它用起來,否則萬一寫錯浪費在debug上的時間要遠遠多於看幾眼板子的時間。  

之后的比賽也要繼續努力!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM