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:

水题,按题目说的作便可

相关文章
相关标签/搜索