1. 程式人生 > >2017 ACM區域賽(南寧站) 參賽流水賬

2017 ACM區域賽(南寧站) 參賽流水賬

字符 暴力 through abc 參數 ble 搜索 推公式 stay

day0:
  早上四點起床趕飛機,還好沒有吵醒室友導致被打死。本來想在飛機上準備一下下周的小測,結果飛機一點都不平穩,只能全程和隊友吹逼聊天。下午在賓館裏和johann通關了一部合金彈頭,重溫了童年的經典。晚上補了補前一天晚上的CF educationnal round的E題和F題,然後被彪爺拉去開黑打牛客網的一個比賽,一看比賽都已經開始2小時了,不過彪爺實力穩如狗,我寫了個D題,他寫了ABCE,最後rank 9,要是早點參加就可以騙到獎金了QAQ. 打完比賽逛逛B站發現fgo出了一個劇場版動畫,於是補了一波,感覺還不錯。

day1(熱身賽):

  熱身賽的題目還算有趣,johann前一天晚上可能德州撲克打多了,手比較抖,D題WA了2發,之後我寫了個C題的二分,reku寫了個A題的變種floyd,把時間都留給johann寫大模擬題B題。 題目描述很多歧義,坑點巨多,問clarification也不給解釋,只能枚舉題意。好長一段時間沒有什麽隊伍願意寫,只有港科大(還是港中文)的一個隊交了十多發也沒過。後來陸續過了一些隊伍,不過我們隊因為一些小細節寫錯到最後結束也沒過掉。不知道南大StayReal怎麽一發就過了這道題 。 學校提供的夥食不怎麽好吃,晚上大家紛紛跑路去賓館點外賣。 晚上atcoder有個奇怪的比賽,我們隊準備做一做,一打開發現只有2道題,一道1000分,一道1500,感覺可能一道題也做不出來。第一題討論了半個小時,想到了一個N^3做法,可能可以繼續優化,但是肚子太餓,於是集體跑路吃外賣看番去了。 之後reku給我安利了一些哲♂學的視頻

之後三人決定一起看非誠勿擾,因為據說賽前看非誠勿擾就能拿金牌(似乎是真的)。 大概折騰到十點半就睡覺了。

day2(正賽):

 早上起來頭有點暈,可能是因為感冒了。比賽開始前幾分鐘題目就發下來了,竟然沒有裝在信封裏,大家紛紛開始看起了題。只有我們隊還在排隊上廁所(後來機智的跑到二樓去上廁所)。比賽開始,我發現A題題目80%都是廢話,其實是個無腦簽到題。寫好之後還檢查了一下,結果發現已經有幾十個隊伍0分鐘就過了。 之後隊友上來過了個F,我發現M題是個偏序集求最長反鏈的經典題,寫到一半,隊友說L題是個數列題,查了下數列表找到了遞推公式(賽後聽說是pell方程),不過要高精度,我過了M題之後,換reku上來寫java,也很順利的AC了。reku寫java的時候,我和johann大致搞出了J題的做法,分類討論了幾種情況,最後三個人合力討論討論把解法搞出來了,也是1A。 刷了下榜,發現彪爺他們隊在rank1,我們隊在rank3,感到非常意外。 之後johann上機寫I題的博弈(實際是暴力),我看了下榜發現H題有個排名不怎麽靠前的隊伍過了,看了下題發現是個簡單模擬題,於是把johann趕下來寫H。寫完之後發現過不了樣例,才發現看錯題了,換回johann寫I題。我和reku在邊上重讀了題,然後提出可以把做法修改成用vector每次保存alive grid的位置。johann寫好I之後提交TLE,我提出搜索的時候不要每次把矩陣讓參數傳遞到下一層,而是回溯的時候把矩陣旋轉回來,修改後極限數據只要0.5s便能跑出來,感覺穩了,提交後AC。接著我上去修改了H的做法,很快也AC了。 這時E題也有兩三個隊過了,看復旦的wood cube大概在比賽開始四十多分鐘的時候就拿了這題的一血,感覺不會是個很復雜的題。johann給出了一個貪心的策略,感覺是對的,我上機寫了個DP,通過了樣例,提交後WA,以為是算法錯了。好在johann很快發現我的一個變量用了int定義,而題目給出的範圍是2^63, 我修改錯誤後,把double 全部換成了long double後提交AC。

前期總的來說還是非常順的,過了八個題之後時間才過了2個小時多一點,刷了下榜發現我們隊和一隊排名都在前五。本來以為還能再搞出一個題的,結果後面的題難度確實有些大,敝隊實力還是略欠,最後2個小時決定合力搞一搞字符串題,討論出一個看起來是正確的但是及其難寫的做法,果然沒寫出來。賽後發現做法其實是有問題的,復雜度沒法保證。最後排名rank 9,金牌是保住了(多看非誠勿擾),但有一種前期操作猛如虎,後期三個二百五的感覺。

總結:

敝隊每次比賽的排名,大多取決於前期題簽到的速度和罰時,面對難題往往束手無策。平時的訓練可能應該更加註重於專題的訓練和較難題的補題。 今年的比賽打完後,也要保持一定程度的個人訓練,尤其是在難題方面。

2017 ACM區域賽(南寧站) 參賽流水賬