2017年山东省第八届acm省赛总结

版权声明:转载请注明http://blog.csdn.net/blue_skyrim https://blog.csdn.net/blue_skyrim/article/details/71438775

        作为一个即将退役的大三队员,这届省赛对我来说就是最后一次比赛了,同时也是最重要的一次比赛。在去年的省赛中,我们队发挥的不理想,没拿到奖牌,因此今年就是最后的机会,我们队在这一年中也准备了很多,其中也有过放弃,失望等时期,不过好在最后都坚持下来了。其中对我来说,最大的问题就是压力了,因为我是这个小队的队长,这一年中,我总是时不时回想起去年失败的情景,队友们失望的表情我现在都记忆犹新,每次这时我都怀疑自己,批评自己,总是做不到一个队长应该做的事,没有一个队长应该有的实力。今年省赛的前一星期正好赶上春假,实验室所有人都要为省赛作最后的准备,而我在这段时间压力变得最大化,晚上时不时做噩梦,梦到我们队死活做不出题,眼睁睁看着排名掉出奖牌区,然后半夜就醒过来了。出发前我给自己订的目标是,至少要拿到铜牌,当时的我根本没想到,这次的成绩,包括这次学校的成绩能够如此辉煌。

这次比赛是在青岛科技大学,已经不知到这是第几次来青岛了,这次住的宾馆还不错,只不过第一天中午吃的是盒饭,说实话不好吃,有个队友还中招了,结果下午拉肚子。热身赛的时候,我们还算顺利的A了最后两题,第一题想了很久,我最后想用记忆化搜索搞,结果老是RE,比完后和别的队交流才知道这题数据水得很,暴力就能过,无语。晚饭是在宾馆吃的,这次还真的不错,不过后来听说那两条咸鱼居然值两百块。当天晚上我们队讨论了很久的战术,一致决定先集中精力快准狠搞定水题,不去看别的题,时刻跟榜,之后数学题就交给数学大神cxf,我和sxx做别的题目。

第二天正式赛的,比赛前五分钟左右就能看题,我们立马就找到了第一个水题,快速幂的模板题,我们都能背下来,因为是我是主coder,所以我来敲这道题,期间cxf又找到了一个斐波那契数列取余的问题,稍微推了推就找到了110的规律,就是一个大数对3取余,听说很多队都是用JAVA大数过了,不过我们是用的大数取余模板。我的第一题很快就敲完了,测试了几遍觉得完全没问题,因为题目本身就简单,就很自信地交了上去,结果居然WA了,没办法只好把代码存下来,再让cxf去敲他的大数取余,好在1A,交题的时候弹出来了通知,我稍微看来一眼好像就是说我的那道题有个改动,结果cxf立马给关了。。。题目交对后我就去看通知,原来是我那道题模其实是1e9,题目写的是1e8,坑爹啊,我把代码加了个0就过了,两道题10分钟就过了,然后看了下排名,还在挺前面,就放心地找别的题,cxf找到一个一元二次方程组的,不过样例没看懂,我和sxx找到了倒数第二题,我们讨论了一下觉得是贪心可搞,我就开始敲了,敲完后测试了一些样例,都过了,觉得可以交,结果WA了。sxx把代码打印出来找bug,我和cxf讨论了下样例,题意”是对于任意的x,如果满足a*x^2+b*x+c=0,那么x是整数“这个命题是否为真,第二个样例是0 0 1,一元二次方无解,但答案却是真,我们想了会,觉得这个命题是一个蕴含式,如果前件为假的话,命题肯定是真,应该就是这个思路,然后cxf就开始敲题,期间sxx也找出了bug,不过我们要先解决这个问题,cxf测试了一会,觉得能交,但结果还是WA了,我们只好又开始改前一道题,改完了sxx说的bug后,sxx又说数据范围是不是要改成long long,我觉得数据最大也才200*200,应该不会超,就没去改,结果交了还是WA,这时候我们都有点失望,错了太多,罚时肯定很多,但还是只能硬着头皮继续改,这时sxx还是坚持测试下long long,她把最大的数据输进去后,发现果然超了int,我当时就很尴尬,看来凡事都不能凭自己的主观判断,改了数据类型后,这次我们都很谨慎,测试了很多遍才敢交,好在结果是A了,刷了下榜,发现大部分都是3题和以下,我们还在银牌区,现在就cxf的那题可搞,我和sxx就去帮cxf,最后还是cxf重写了下代码,在100分钟左右A掉了。

现在我们判断水题应该都被我们解决了,虽然我觉得这四道都不怎么水,看了看榜,也就剩下c题可做,题目不难理解,一个烟花在一个单位时间向左右分裂成两个烟花,那两个烟花再在下一个单位时间分裂,但就是没思路。我们想了快20分钟,期间也看了看别的题,都没思路,我只好模拟一个烟花在接下的五个单位时间分裂的数量,突然发现正好构成了一个杨辉三角,时间就是层数,每一层的中间就是原点,其他位置的数正好就是那个时间相对坐标所拥有的烟花数,只不过这个杨辉三角的每个数之间有一个0,我把我的思路和队友说了,他们也都觉得是这个思路,只要能够找到杨辉三角的公式就行,cxf立马想到了杨辉三角的每一层就是组合公式,因为数据很大,要用卢卡斯定理,逆元和扩展欧几里德算大组合数,这是cxf的强项,于是cxf就把书上的模板敲了上去,接下来的问题就是如何处理每个数之间的0,我想不出好方法,sxx觉得要用偏移量处理负坐标,cxf想了好几个方法但都不对,我们就在这上面耗了一个多小时,期间刷榜发现还是在银牌区,看来大部分队伍对剩下的题也是没有对策,结果还是cxf,我们的数论大神经过深思熟虑后想出了一套公式,敲完的时候他想让我们想一些数据,但我们组已经快两个小时没有交题了,这时候已经封榜,而且这题数据也挺难想的,就先让他交一发试试,结果等了几秒出现的结果是一个绿色的YES!当时真的是激动的快要跳起来,封榜前我们队伍在银牌区的下游,离铜牌还有十个队伍,如果我们一道题都没做出来,很可能会掉到铜牌,但能做出一题银牌就肯定稳了。最后的四十分钟决定开d题,我想了一个搜索的思路,敲了敲,无果,cxf找到了一些规律,但就是写不出来,就这样一直到最后结束比赛,我们队伍做出了五道题。

出来的时候我们组都挺高兴的,去年打铁,今年很有可能拿银牌,我不止一次怀疑是不是在做梦。最后滚榜的时候,青科的两个小屏幕从远处根本看不清,还是拿手机勉强看到我们队一开始被挤下银牌区然后飞上去,银牌是稳了,惊喜的是这次学校有三个队伍拿到了银牌,结束了只有金牌和铜牌的历史,sxx还解锁了一个成就,历届acm队长都是铜牌,她成了第一个银牌队长,总的来说收获很大。顺便一提,当前晚上实验室所有成员和老师玩狼人杀玩到凌晨。

阅读更多
换一批

没有更多推荐了,返回首页