2017ICPC/ACM亚洲赛区西安站现场赛 总结

2017.10.27早上9点半从学校出发去威海北,然后大概四小时到了济南转车,硬卧济南到西安,时间刚刚好,大家也比较轻松,我们2个队6个人刚好包了硬卧的一整个小包厢。晚上说说笑笑,谈谈学习、保研的事情,火车上没什么网,差不多十一点就睡了,第二天早上大概7点半,就到西安了。

出了西安火车站,去路对面的吃了个早饭。然后准备按计划做公交的时候,发现今天是西安国际马拉松比赛,市区道路交通管制,临时改变计划线路,下车的时候,zh小姐姐的手机就被偷了……emmmmm,谁都没有知觉,都没发觉,然后就这样了。然后我们坐地铁,一号线转2号线,避开交通管制的道路,然后坐公交,再转公交,坐了起码2小时,公交上还挤满了人。去西工大长安校区之前,我西工大的学长给我说长安校区在山里,是乡下,我还说能有多偏僻,因为一般大学离市区的确都很远。mmp没想到离市区整整2个半小时的路程,还真的是在一个村子里,真的是荒无人烟,空气清新,果然是一个学习的好地方。到的时候大概已经是下午12:30了,然后签到领队服,掐这个点吃了西工大食堂的午饭(我觉得还不错),采购一波,调整一会,14点就去开幕式了。开幕式也没什么,本以为会有一波吹逼,结果就讲了十几分钟,就结束了。然后就进体育馆了,准备热身赛,然而14:30到的体育馆,15:30才开题。吐槽西工大每次比赛前都先进行安全演习,果然宗旨是安全第一比赛第二。因为打过省赛,电脑环境linux也都熟悉,开始热身赛后,我先看了B,字符模拟加减法,无比麻烦,然后jzh和zsx看了C题。在看C题期间我看了A题,发现一页多都是介绍西工大的历史,就最后一段有用,就是一个简单的快速幂,底数1938,让zsx敲了一发,wa了。仔细一看,底数是文章中随机的一个数字,zsx问我西工大什么时候建校,我说1938年,然后他说那肯定是2017,再一看有这个数字,一交,AC了,(吹一波)那瞬间53名。然后他们C题看完了,有区间求和,就用了树状数组,交了TLE。然后想了一会,也不知道怎么优化,就放了C题去动超麻烦的B。还是zsx敲的代码,敲敲敲,思路很简单,也做过类似的题,但是还是打常量矩阵那边卡主了。大概还剩30多分钟,敲出来了,过了样例,交了一发,WA了。懵逼,然后以为是空行的问题,改了格式又交了,还是WA,不知道怎么办。还剩3分钟的时候,我突然问zsx,当0-0的时候怎么样,结果发现没输出,就是错在相减为0的情况下面没有输出WA了,然后时间也来不及了,zsx直接加了特判,还是十几秒的时候交了,比赛结束后AC了。之后查代码才发现ans=0的时候根本不进判断里,所以没有输出。出来后祥神他们一总结,C题线段树和树状数组都过不了,也不知道为什么,然后我问我浙师大的同学,他们过了C没过B,跟我说,暴力2层for就过了(mmp)……然后在西工大食堂吃了晚饭,等摆渡车,去了宾馆了,办理手续,进房间快8点了,然后RNG也凉了,洗了个澡,21点多就睡觉了。(宾馆条件比较差)

29号早上6点多起来,洗澡吃早饭,大概7点半的时候坐上了摆渡车去西工大,大概8点到的,然后等了大概30多分钟,进了赛场。比赛前,西工大果然又进行了安全疏散的演示。因为先进了系统,可以偷偷看到题目名字,发现B和K是有相关的题,zsx断言其中必有一个题简单,后来准时开题,先看了B题,朴素地数字匹配问题,2个排序然后从头到尾扫一遍即可,我敲的代码,wa了一发后zsx查了个bug之后ac了,大概是30分钟左右,不快不慢。然后jzh小姐姐就去看相关的K题了,我们看了一下榜,很多过了F题,zsx就去看F了,然后我也看了F,还看了A\G\H\J题,就是简单地对题目有个大概的了解,在看题期间jzh敲了K,但是TLE了。没办法,这期间对面的计蒜客打星队已经A了BFG了,而且周围的队基本上都过了F,我只能硬着头皮回去看着到概率的F题了。三个人演算这个题算了半天,基本卡在概率的循环上了,不知道怎么处理,然后zsx找到了几个没循环的,得出了n/(n+m)的规律,然后没别的法子了,交了,竟然AC了,这时候已经时间过半了,大概已经200多名了。然后对面的计蒜客已经过了ABFGH了,而且FGH过的间隔都非常小,我就去看G了,jzh和zsx去看了H。然后G这个异或的问题,我存了前缀然后求了组合,样例过了后交TLE,实在想不出能优化的地方了,而zsx和jzh觉得H是个线段树,然后zsx就开始敲线段树了,这时候大概只剩一个半小时了。敲了线段树之后发现板子好像不对,单点修改后更新不对,而且思路也不是清晰,然后我的想法最好也是有线段树来求区间最小值,但是线段树真没法子了,我就说这题我来,你们两去看看我的G题。然后我写了一个二分求区间最小值,从左往右求k区间的最小值然后减掉,然后朴素爆搜了一发,TLE了,然后想办法优化,跳过最小值为0的点,然后wa了。我以为是我在跳的时候又错了,又进行了优化,还是wa。最后zsx说要不试试long long ,我说行,试了一下,AC了,这是封榜后20分钟了。封榜时3题已经220多名,拿牌必须再A一题。看了榜之后觉得J题有戏,zsx就开了,但是优化有难度,直到最后还是没能a题。结束时就知道基本拿铁了,因为FH出的太慢了,一首凉凉送给大家。

最终的确没拿牌,时间排名不够。总结原因一个是比赛前学生工作占去了一部分训练的时间,代码手感一般;二是有思路的情况下会往板子上靠,总喜欢用板子来搞,但是其实很多题目是不需要板子就可以打,不够灵活;三是队里头没有专攻数学题的存在,这种有时候不需要算法和数据结构的题,要是有一个数学大神就很轻松,也会节省不少的时间;四是思维僵化,学了什么就想用什么,但是其实题目都很灵活,很多都不是由一个具体的数据结构能解决的,就如H的,简单的二分思想也能过,对待题目要灵活;五是这样的时间安排的确有点赶,而且我们全程带着行李箱,有点累。

我觉得之后我们的队伍组成可以让zsx做主coder,然后我做统筹开题还有debug,jzh小姐姐来出思路,最好每个人都要有单挑的实力。之后的日子里我可能要加强一下队内的训练,为明年省赛做好准备,争取明年的区域赛拿块牌子。

猜你喜欢

转载自blog.csdn.net/ALLconan/article/details/78399323