第一次打ACM,心里万分激动,怀着拿牌子不亏,水水更健康的心情,进了比赛场。结果省赛压线银,东北赛极限铜,超出预期,很开心,也感谢队友的不杀之恩。
第一天省赛,题目还是比较友好的,第一题题顺顺利利的就过去了,当我还沉浸在读题的高端体验时,给力的队友已经不知不觉A过了第一发,直到现在我还没有读到A题是什么。等他们又开始新一轮战斗的时候,我开始一个人奋斗在D题的战场上了。
D题题意还算是明了的,也给了我一种我能做出来的错觉,给主代码手讲了一下这个题,大佬说其实不好做,这时候另一位又说E题可以做,他就转过去敲E题了,我继续沉浸在D题中,暴力解法不存在的,数据范围十的五次方,又开始想存储每个位置上数在次之前出现的次数,通过O(n)判断在区间内有没有出现过,发现并没办法实现。最终放弃了D题的攻坚。
这个时候,重点开始出现,E题也是签到题,全场基本都在一发入魂,而这时我抬头发现我们的E在不停的WA,队友给我交代了题意,我又仔细想了想,没有什么特殊的边界数据了,就是一道弱智题,取个模就OK的事。事实证明,以后再遇到这种情况,一定一定一定要仔细读题,换一个人重新读题,千万不要找人讲。当我发现我们输入的数据N和M读反了时,已经过了三个多小时了,而且我们三个人又各种重构代码,每个人敲了一种,又提交了几次,加了五次还是六次罚时,成了我们过的五道题里的最后一道。也多亏找出了这个BUG才没让我的划水感那么沉重。
当其他两个人跟榜做G H的时候,他们说J题也在大批的过,可以做,但是他们两个好像没有找到很确定的思路。我一看感觉OK,思路比较清晰,简单的一个数组存输入,一个数组存各数字所在位置,交换时两个数组都交换,直接从头开始一个个恢复原位就OK,当我在纸上大概划完J题时,抬头一看。。。G H居然都顺顺利利没有意外的过了,我连题都没看到。作为当时最水最没存在感的我,毅然决然的提出敲一下J题。
J题敲了大概几分钟一次过,这时全队都松了口气,我也有一种咸鱼翻身的快感,因为在J题之前我们只过了三道而且时间并不算快,一直在铜和铁的边缘徘徊,这时榜单基本稳定,J题的一次性过直接将我们带到了银区,虽然还比较靠后,但是和三题明显已经有区分度了,这时也到了午餐时间,我们狠狠的吃了口面包,庆祝这短暂的胜利。
当我们回神之后,又开始紧张的debug以及开新题环节。
过四题的兴奋在e题一次又一次的WA中消磨殆尽,此时我们已经即将跌出银区,其实我的压力这时候是最小化的了,因为(本咸鱼的目标只是个牌子)。
这时队里的小姐姐一直在看B,说是数学题,可以写,事实证明写出来超时,应该再用平方差公式再化一下,事后听题解才明白的事情,然而我们过于依赖用循环做,一直在想优化,最后也没A。
同时开的还有F题,字符串的题,好像。。。。。原题居然先忘了,我们先暴力,后来努力想优化,还在不停debug,最后感觉是只差一步之遥。
这时大佬在开I题,但是榜上没有人过,最后还是没有人过。
最终结果是,我们后半程花大力气啃的B题和I题,只有B题有一个队在临结束前A过了,在我们前排,一阵欢呼。
对题目的难度把握,还有对跟榜的时机把握,都是有问题的,J题其实可以很早就过,只是当时耽误在了E题上,最后时机三个人应该合力努力一下F题,如果可能成绩会再进一步。大佬最后还在I题中无法自拔,我没有参与I题的解答,不太了解到了什么地步,但是大佬后来说如果可以I题能解出来。
第一天就这么算是愉快的结束了,应该是在银牌的下半区,但已经很知足了,如果E题没有失误可以向上多冲击几名。
第二天才是划水的开始。
赛前说好一个从前往后看一个从后往前看。
我就是从后往前看的那个,一看K题,哇,这么长,还有个黑黑的图,这么复杂,不看了吧,先看J,结果。。。。没过两分钟,榜单上开始有人刷新K题A了,又过了一分钟已经A了一大片了,大佬直接拿起题册什么都不管直接开始自己看K题,这时我的内心是愧疚的,如果说第二天心态没崩只能说是谢谢队友不杀之恩。
K题还好过的也不算慢,十分钟过的,但这个题的速度已经是在铜牌区底部了。
这时小姐姐神勇的说A可以写了,让她来敲,急急忙忙敲了一发WA,发现一个循环变量控制错了,我假装在帮忙debug盯着屏幕其实是在等一个AC刷新排名好洗刷自己的罪恶感,第二发安安稳稳的过了,这时候只是将排名向前推进了那么十来名,两个题的垫底。这时我的内心还是慌张的。
这个慌张。。。。一直存在,最后成了绝望。
我们的第三个题等的太久了。整个赛场也是,整整三个小时,大概一直都是A题和K题两个气球,旁边的队伍都是这样,从银到铜只是两个题的时间差距,而这时的我们已经慢慢被挤出了铜牌区。这三个小时,我们尝试过了开各个题,爆过J题,日过G题,I题也在想,最后只有B题最接近实现的可能,榜单上也看着三题和二题的差距主要在B题,全场有个基佬紫的气球(b题的气球)就感觉这个队伍立马有一种要拿银牌的尊贵奢华之气概。
而B题的代码是大佬敲的,在算各个内存条大小的时候用了位运算,我还在感叹这个位运算的巧妙,毕竟之前一直都没有将这个东西实用过,想如果要是我我就用FOR循环了。。。结果最后我们差点挂在位运算上。我们三个最后打印了两份B的代码,一起debug,我一直在纠结取模运算的正确性,算这个算那个,最后当我低头沉思的时候,结果两个人忽然哇一声,居然就这么莫名其妙的A了,原来是在位运算时,C语言默认给的int型,而这里最后会出现long long的数据,所以需要来一个强制转换。。。
这样,三个题一过,就稳定在了铜牌最前面,如果再早那么一点,是不是还有可能是个银呢(痴心妄想中)
这之后我们又努力的试图找出D题全排列的规律,手动写各种情况,也提交了各种简单的规律猜测,最终无果,三题终场。
不得不说两次比赛都已经尽我们最大的努力了,基本到了最后就是极限了,该做的也做了,剩下的再给我们时间也做不了了,没办法,知识水平还是太有限。只能说希望不被校队刷下来,真的想留下,再努力一年,明年再干他娘的。