2014 ACM-ICPC 亞洲區域賽 鞍山賽區 比賽小結 & 部分題解

鞍山賽區比賽終於結束了,擦邊打銀。。也是沾了今年校隊的運氣吧,差一點覺得是銅首了==。和東北也挺有緣的,前兩次參賽都是東北賽區(2013長春、2014鞍山)算法

 

分工:我主敲+圖論+網絡流+搜索+模擬題,ly負責數據結構+DP,dlj負責DP+貪心+幾何+亂搞題網絡

鞍山日程安排也真緊湊的,週五晚上10:45的火車,週六早上7點多到,而後到了火車站吃了個KFC當早餐,就作遼科大校車去沈鐵千山療養院了。。(志願者車站接站,nice!)數據結構

到療養院才知是四人間。。。好吧,四人間能夠承受,but還附送各類小動物==spa

中午在療養院吃了自助午飯,午飯仍是挺不錯的,紅腸真心好吃~調試

下午去遼科大逛了一圈,外加熱身賽(僅出了1題,作過的題認不到。。。,熱身賽題解參考2013年多校聯訓3(clj出的那一場),題目基本都是那上面的。。。)code

不過東北的天黑的真快,5點多就黑了。。,而後作一輛很霸氣的校車(車頭特別長)回療養院,路上看到一座酷似白宮的建築,233333blog

晚上居然不到11點就睡了,今年睡的最先的一次。。。隊列

週日早上7點起來吃個早飯,而後出發去遼科大,9點開始,我從前讀,ly從後讀,dlj從中間開,讀到C題,感受可搞(事實證實最後卡死在這道題上),給dlj和ly講了題意,他們就去想了。而後刷了一下榜,看到I題過了一片,我就去讀I題了,發現是簽到題,14min 1A,開場較順利。而後刷榜,發現E這時也過了一片,我去讀了,給dlj講了題,而後想到一個dp,給dlj說了一下,感受可搞,而後敲了1A。再次刷榜,看到D題有人過,ly說以前沒讀懂,讓我去讀一下,讀了發現很像長春的I題的思想,一段一段地動態更新應該可搞,給ly和dlj說了題意和一些想法,他們也感受像動態更新,而後dlj和ly就推了一個公式,$O(N)$的,而後我去敲,十幾分鐘敲完發現過了sample可是中間變量數值不對並且不過本身造的數據,而後開始單步調試模式。。。一個變量一個變量地輸出調試。。。調了很久,發現過了sample以及本身造的數據,這時差很少有1h了。。。交了一發,WA,這是ly問我有沒有sort,我才發現少敲了一個sort(由於輸入數據不必定有序),加上sort就過了。這時差很少剩2個半h左右,刷榜發現B、C題有過,ly說B看起來像大模擬,就讓我去搞了,他們推C。讀完B題發現數據只有5000,$n^2$暴力可搞,而後就手寫一個隊列,每一個操做都是$O(N)$的,敲完,測了數據發現過了sample,由於這題數據很差造,就交了1發,WA,這時還有1.5h,打印一份代碼,正好ly他們想到一個算法,就換ly去敲C題。我對着題讀了兩遍代碼發現代碼沒有問題,而後又從新讀了一遍題,發現題目結尾說clj只給說過話的窗口發送bye,這一點以前沒有看到,而後去加了一句if,交了,返回Yes,很興奮,這時剛剛封榜,還有1h左右時間,排名估計在銀牌尾部。這時感受C題決定一切了,也沒有時間開新題了,出了C確定有銀,甚至可否衝一下金?(由於罰時很低),沒出就極可能是銅首了。並且出C感受仍是挺有戲的,ly就繼續敲C了,還剩40分鐘時ly說算法有問題,討論結果發現算法少算了狀況。。而後三我的就集中到這一道題上了,討論發現算法錯了,無法完整計算全部狀況,必須得用容斥(而咱們三個沒有人搞組合計數。。容斥只有理論,沒有刷過題)。。這時還有不到20分鐘,而後我就想了一個$N^2$複雜度並且常數還很大的算法,就想去試一發,ly敲了一發,沒過sample,調了一下,過了sample,交了,WA,而後比賽就在「交-WA」的節奏中倒計時結束了。。。原本想到確定是銅的前幾名的,因此作完後心情很糟糕,直至閉幕式剛開始芳姐告訴咱們是銀,沒有滑到銅,心情纔好了一些~數學

 

此次比賽暴露了咱們隊不少問題:模板

一、水題應該我和ly交替敲,一我的讀+敲太浪費時間

二、咱們隊缺失搞組合數學和數論的,ly用接下來的一個月去搞

 

PS:遼科大的志願者真心nice,全程陪同,各類幫忙。

 

明天開始恢復訓練,但願廣州賽區能比得更好!(廣州賽區結束後將總結的模板整理放出~)

 

/**************************************************************/

 

部分題解:

 

B:

大模擬,因爲數據只有5000,因此直接暴力搞,每一個操做$O(N)$便可,下來據說buaa昂神隊用SBTree過的,嚇尿了,orz

坑點:

一、注意top只是一個標記,並不改變窗口在隊列的位置,其餘操做是改變窗口在隊列的位置;

二、clj只給說過話的窗口發送bye。

 

D:

貪心策略:將k個放在最終的質心上,因此這K個結果是0;最終計入的n-k個必定是連續的。

從第一個元素開始不斷選取連續的n-k個,找質心(能夠從上n-k個-1+1地O(1)更新),用曼哈頓距離算(而不是歐式距離,由於曼哈頓距離是線性的,能夠O(1)更新;而歐式距離是二維的),獲得曼哈頓距離最短的n-k個元素,for一遍算最終結果

 

E:

dp[i][j]表示掃到第i個元素,序列尾是j

狀態轉移方程:$dp[i][j]=max\{dp[i][j],dp[i-1][k]+score[k][j]\}$

 

I:

水題,按題目說的作便可

相關文章
相關標籤/搜索