1. 程式人生 > >2017 CCPC- 杭州站總結!

2017 CCPC- 杭州站總結!

杭州站總結

 要說心裡不失落那是不可能的,雖然比賽打完了三個人都沒有很大的失落感,甚至有點釋懷。可是回想起來還是有點遺憾,無非就是沒拿到一塊牌,自己和隊友是看的比較開的,但辜負了諸多期望。

 正如上文所說,我們又打鐵了,今年CCPC的最後一站,而上週剛經歷了秦皇島站打鐵,心裡不免感慨萬千。這兩場鐵打的都是比較冤,秦皇島站我們回來把所有的問題都排查了一遍,發現我們掉進了雙重坑,一開始是一個細節三個人都沒想到,第二種思路又被模板坑慘了。這場也是有點冤,我們全場做的B題莫名其妙被卡常了,時間複雜度(20*1024*1024*20)算的完全可以過,但死活TLE,最後半小時改成了dfs,複雜度就完全降成了2^m,最多1e6,乘以T組資料也不過2e7,還是TLE,這就讓人有點懷疑人生了,對於題目我們三個人一致認為今年CCPC的題質量很好,特別是昨天結束聽到同期舉行的青島賽區3題金到銅的事實,更是詫異50w^2的暴力居然能過。兩場CCPC我們都卡在了莫名其妙的地方,賽後與別人交流完全就是和我們一樣的寫法,所以徹底懷疑人生,要說思路沒有,我們輸的心服口服,但思路秒有,卻被莫名其妙的坑卡住了全場,這是最讓人無奈的,我們中途還懷疑過會不會是思路有問題,出題方故意卡這種思路,但思前想後也沒覺得我們的思路有什麼問題,我們的複雜度也是理論上可以過的,至於卡常,我們在第一發返回驚人的TLE後立刻把普通乘法和取餘改成了快乘,依然TLE。

DAY 4

火車中午到達杭州站,三個人乘坐地鐵去下沙校區,但三個人都不熟悉,導致買票買錯站了,其實也就少買了兩站,但價格是一樣的,我打算在出站的時候補票,但隊友嫌麻煩要按規矩來,作為年輕人,我覺得什麼事嘗試一下也行,於是讓他們中途出站再買票,我直接過去,也解決了分歧問題,結果就是他們多花了4塊錢,我直接出站了,沒有逃票,出站口也直接把地鐵票收了並且開門了。。。到學校快一點了,三個人都沒吃飯,按行程上安排都過了報道時間和吃飯時間,於是直接進會場找位置參加開幕式和熱身賽,沒有參賽手冊,三個人在體育館瞎轉,最後還是志願者幫忙找到了位置,位置又是在主席臺下,我左手邊不到2米便是哈工大教練。。熱身賽開始,三個題,題意都不好讀,我推了一會A題,樣例出來了於是和隊友說,還沒想思路隊友讓我去讀其他的題,十分不情願啊,熱身賽打的比較隨便,怕敗了人品,主要以環境測試為主,A題隊友想出的思路,他們兩個寫的,第一發WA了,後面發現兩個人的想法有點不一樣,然後改了改AC了,B題題意很迷,於是當起了裸翻譯,好在隊友理解能力強,另外一個隊友則測試java壞境,畢竟前兩場都有大數,包括秦皇島賽區的銀牌題。B題讀懂後發現情況太多太雜,於是手推所有情況,榜也很隨意,基本沒多少人做B和C,我們推了好久,只記得有半個小時,中途還有很多細節沒有徹底理清,然後上手打,基本和重新推差不多,大家都陸陸續續離場了,我們在測試樣例debug,也比較隨意。後來報完到領了東西就按照指示去桂花園三樓吃飯,飯後也不知道賓館在哪,於是三個人騎著ofo跟著導航走,到賓館很早,晚上商量了一下策略,連續幾場下來策略該調整的都調整了,我們一致認為秦皇島的狀態和策略都不錯,在卡題的這個問題上做了調整。其他的還是以穩中取勝原則。

DAY 5

教練7點打來電話遠端叫起床,比我設定的鬧鐘早了10分鐘。賓館早餐不錯,人也很多,辦好退房手續和隊友坐上了學校安排的接送車。到體育館又不讓進場,等了10多分鐘才讓進場,然後坐等比賽開始。

開賽,A題題意瞬間明白(好像是個原題)為了保證題意正確又讀了一遍掃了眼樣例和隊友說了思路也瞬間出來,上手打,我來推樣例造資料,5分鐘左右打完,然後測了幾組樣例,都沒什麼問題,於是提交,過了一會返回Yes。然後看到最後一題題意很簡單,感覺像個規律題,於是讓隊友打表,我再找找水題,發現榜上有人交L題和C題,都在判題狀態,然後看了看L題,也很快明白了,但思路不明確,隊友表打出來發現沒什麼規律,於是先跟榜,我去看C題了,L交他們兩個,C題也明白了題意,一個Nim博弈的進階版,榜上L題交的人多了起來,但有的WA,有的還在判題,公告顯示L題資料有誤,暈。但隊友很快有了想法,我也有了點想法,隊友討論了一下然後開始打,我們一邊關注榜,一邊快速讀題,B題有人過了,然後我去讀B題,一個數論題,沒讀多久,隊友讓我讀D題,但榜上D題過的人寥寥無幾,我很不情願去讀D題,隊友L題程式碼出來了,然後他們測了幾組樣例沒什麼問題提交,系統之前說L題需要重判,於是我們立刻開其他的題,我繼續讀B題,C題也和隊友說了,但榜上沒人過C,於是B和D題兵分兩路,B題題意一會也明白了,然後和隊友說了,然後幫另外一個隊友讀D題,發現是個樹上操作的題,情況很多,題意不好描述,然後簡單和隊友聊了一下,繼續攻B題,公告顯示L題開始重判,暈。很久好像,返回了Yes。看了下榜,Rank 51,穩住的話還行。後就是B題了,B題過的人更多,而且最快的竟然11分鐘就過了,於是感覺不像是一個難題,很可能是結論題或者人家做過原題,我們推了一會,三個人數論不是很強,我和zp主攻,csb攻D題,推了一會zp說打個表看看,我繼續推,發現輸入資料量才20個,然後圈了一下,然後仔細分析了題目給的條件,隊友打表並沒有打出什麼結果,但我發現有個地方可以化簡,於是和隊友zp說了,然後zp推了一會思路也很快出來了,需要用到逆元,但我的想法和他稍微有點不同,因為最後20個,之前看到以為很大,但仔細發現2^20才1e6左右,1s完全可以,這個題時限是2s,於是zp先打,我繼續推,策略是一個題必須經過兩個人確認再提交,程式碼一個人打一個人看並且負責造資料想坑點,我的想法逐漸成型,然後和隊友說爆搜即可,隊友寫的我有點看不懂,但他寫了大部分主體,需要debug一下,樣例過不去,於是我幫忙debug,現在回想就是這段時間比較多,程式碼能力稍微有點欠缺,debug有一會時間還是不知道哪有問題,樣例就是過不去,我直接和隊友說我的想法,隊友突然明白一個細節處理的地方,然後改改,我也在這個過程明白了他寫的程式碼,其實和我的思路差不多,實現方式不一樣而已,繼續dubug了一會,樣例都沒什麼問題,然後又出了幾組資料測試,也沒什麼問題然後選定提交,我們心裡忐忑不安,過了一會返回一個LTE,這十分令人驚訝, 這個結果壓根就沒想到,而且計算的複雜度在4e8的樣子,平時訓練完全沒什麼問題的,於是考慮到可能會被卡常,也就是乘法和取餘這個地方比較耗費時間,然後隊友想起用快速乘優化,實際上,如果是卡常,優化可能會有那麼一丁點用處,不過我們的優化其實也沒有優化很多,所以我覺得很可能沒什麼用,改好後樣例測試沒什麼問題提交果然還是TLE,我們理了一遍思路,沒什麼問題, 實現也沒什麼問題,但很不明白我們的複雜度勉強可以的但是被卡了,可是過的人很多,我們也應該問題不大,我之前覺得他的實現方式和我的爆搜差不多,也沒有算爆搜的複雜度,然後就被卡在這裡了,又到了懷疑人生的時候,時間過的有點快,之前寫程式碼用了點時間然後debug了好久,這個題也不知道怎麼會被卡TLE,然後想起上場的卡題問題,隊友喊我去攻D題,zp繼續看B題可以優化的地方,但要完全放下B題轉攻另外一個題有點難,不過也沒什麼辦法了,D題之前讀懂了題意,隊友一個人在那邊推了很久,他說是個規律,思路是算貢獻,我覺得這個計算貢獻的思路很對,套路也很可能是這樣,但資料比較難造,很難推,只能推出小資料,我們打算計算每個節點被計算了多少次,然後推了前幾組,後來突然發現一個新的節點計算次數可以和前面的節點計算次數聯絡起來,也正是一個規律構造,隊友有點不明白,然後我換了種方式跟他說,瞬間懂了,然後思路大概出來了,於是我們冷靜下來分析程式碼應該怎麼寫,細節處理問題,然後簡單推了一下發現可以了,於是換下zp,我上去寫D題,這個時候12點半左右吧,思路明確的話半個小時是可以出來的,需要處理一個逆元問題,然後和zp說了,zp幫我們處理這個,其他的我來實現,我感受到了合作的愉快所在,程式碼不久出來了,但是樣例有問題,程式碼細節需要處理一下,然後debug了一會,樣例倒是出來了,於是出了一組樣例,發現也沒什麼問題,有點心急,然後選定提交,過了一會返回個WA, 然後我又測試了一個樣例,發現有問題,然後仔細分析了一下,發現是處理的那個地方出問題了,沒法改,之前考慮的有點問題,測試有點心急沒有發現問題就提交了。zp說把B題改成dfs試試,我之前覺得方式都差不多,他說dfs要優一點,我也不太明白優在哪裡。我們下來考慮怎麼處理那個細節,csb發現了那個構造規律其實可以變形,也就可以解決了,但他和我說的似懂非懂,我按著他說了模擬了一下,大致明白了,於是又上手修改,但他說不是這樣,然後他去修改,我來理理思路,大問題沒有,就是兩行程式碼需要處理一下, 處理好了,但樣例測試有問題,於是換下來zp繼續寫,我們繼續推D題,csb發現問題了又上手寫,修修改改,差不多可以了,樣例測試沒問題,手出的幾組好像也沒問題了,然後提交。zp繼續寫,過了一會返回Yes,這個時候已經有點晚了,我們之前被B題卡了,還是莫名其妙被卡了,已經沒有心情看榜了,只能快點修改B,csb去看C,也就還有半個小時不到,dfs很快就改出來了,完整的程式碼驚人的簡短,樣例測試沒什麼問題,手推的也一樣,然後提交竟然還是TLE,判題機真是強大啊。我們試了其他的優化方式也沒什麼用,我強行加上快速讀入優化,提交,還有14分鐘左右,基本沒戲了,判題機很慢,全程都很慢,返回結果讓人等的心急,不過之前會開其他的題,現在只能試試再提交,隊友說C題隨機試試,於是快速寫了幾行程式碼連續提交了三發,隊友又提交了幾發。B題最後加快讀的程式碼的結果貌似沒判出來,好像沒返回結果,倒是隨機的程式碼返回了幾個WA。結束了看榜,發現我們在銅牌區下面,鄭輕三個題都是1A卻排在銅尾,我們D題還錯了一發,更沒戲了。出賽場只想聽聽講題,看看正解是什麼,去會場發現沒有講題,於是問了一下別人,發現4e8會被卡,2e7的可以過,我們仔細算了一下複雜度,發現後面改的dfs爆搜就是20*1024*1024,原來之前複雜度計算錯了,可是後面也改了, 還是TLE,我們也就沒辦法了, 還是不知道卡在哪裡了。

  結束了 ,和隊友聊,三個人都沒有很大的失落感,我們該調整的都調整了,也不是卡思路,而是在莫名其妙的地方被卡,也沒有得到相應的解釋,成績結果不是我們最關注的,反而更有興趣知道我們到底哪出問題了,反而秦皇島真是冤,被哈工大的幾何模板坑了,那個題被卡一直沒想到是模板的問題,但是這場模板壓根就沒用上。。晚上火車和隊友聊了很多,總結了很多,策略真的感覺越來越成熟,這場沒有出現什麼大的問題,要說問題就是B題從開始打到提交這段時間可能有點長了,但每個題的思路也沒有卡很久,唯一不應該的是D題錯的那一發,沒有考慮清楚導致又浪費了很多時間。同校的三個隊去青島賽區聽說都被坑了, 心疼lzq隊。不過心裡話,聽說他們打鐵了心裡也是替他們可惜,沒有一絲的平衡感,這個舞臺的魅力就像趙sir說的:能鍛鍊你很多方面的能力,能讓你感慨萬千,回味無窮。訓練的目的達到了,但成績方面卻做的不太好,這幾場反而在我們覺得打的很差的瀋陽賽區撈了塊銅牌,賽區越來越難琢磨,題目也眾口難調,不過大家都是公平的。