第十一届蓝桥杯大赛参赛心得感悟——17计科3班黄柱聪

发布日期:2020-11-20

蓝桥杯是一个很有名气的一个比赛,以考察选手算法设计和程序设计能力为主。以前在大专已经参加过两次,来到松田后,得知学校也有在组织参加,便想继续挑战,检验自己的水平。我很热爱蓝桥杯,让我有了和全国学子同台竞技的机会,它会一年一年的使我变强大!

校内选拔

报完名之后,首先是参加学校组织的校赛,因为学校要筛选出来参加省赛的人,从报名到校赛并没有很长时间,只是感觉还没有怎么准备就去参加了校赛。太久没刷算法题也使我解题生疏了不少。不过最后也顺利通过了校内选拔,获得前往省赛的门票。

校赛后我开始寻找更高效的学习方法或者是可以更好的学习的网站。主要在蓝桥杯的练习系统、leetcode和洛谷等OJ刷题。

备战期间也很感谢段润英老师、唐盛平老师和梁炖君老师等等老师对我们参赛选手的指导和悉心的关心。系部和老师们的支持一直都是我勇往直前的驱动力。老师们的编程比赛经验是不容小看的,很多时候我花费很长时候都弄不明白的算法,有时候老师的一句话就能让我醍醐灌顶。遇到困难时培养自己解决问题的能力固然重要,而和老师或者同学沟通交流学习也是同样不能忽视的。

省赛

虽迟但到,今年因为疫情,延期了大半年省赛也终于在10.17成功举行。比赛正式开始,第一题是门牌制作,比较简单,直接遍历就可以得出答案。第二题 寻找 2020,我是直接手动复制把测出数组是300x300,再输入,直接遍历出结果。第三题蛇形填数,直接找规律草稿纸上计算就可以得出。第四题七段码,看到后不知如何下手,最后决定手推+组合,还好也推出了答案,赛后看大神博客才知道是按边建图dfs保证联通,二进制枚举判重。第五题,冒泡排序,因为基础不扎实,不知道如何推出最小的字符串长度,错失最后一道填空题。第六题成绩分析,送分题,比较简单。第七题单词分析,直接用一个数组从下标1到26分别表示26个字母,然后遍历字符串,记录每个字母出现的次数,然后再从字符串找出出现次数最多的那个数。第八题数字三角形,典型深搜题目数字三角形的一个变形,考试的时候一直想记录走过的路径,然后一直解不出,做了一个多钟,到最后灵光一闪,想到可以直接记录偏移量,验证完测试用例通过,可惜比赛已经结束了,慢了几秒,相当可惜。第九题子串分值和,考试时来不及,就直接暴力遍历,截取每一个子串,然后计算字符串还有最大的不同字符个数,时间复杂度是O(n^3),应该可以过一部分用例。第十题装饰珠,时间不够没看。

比赛结束后看了看贴吧里大神们对题目的分析,自己粗略的算了下大概对了六道多。比赛回来我足足苦恼了一个星期,心想是要和北京无缘了。然而幸运从来都是眷顾在逐梦路上努力拼搏的人,查成绩后省赛一等奖!获得全国总决赛资格!

国赛

然而还是无缘北京,今年蓝桥杯首次取消在北京举办全国总决赛,我的比赛地点是广东工业大学华立学院。这次省赛结束一个月不到就要进行国赛,练习时间也大大减少了。

决赛当天,早早来到赛场,提前半小时进入考场。作为学校唯一一个进入决赛的选手,还是感觉到很大压力的。不过也只能迎难而上,打开第一题美丽的 2,直接遍历便可得出结果。第二题扩散,模拟扩散过程,将染黑的格子的坐标存进去,然而没想到居然内存溢出了,最后用一个6060x6060的二维数组存储,将染黑的结果标1,才解决这题。第三题阶乘约数,题目很容易看懂,就直接用BigInteger求出100!再遍历求约数,然后程序跑了三个多小时,到比赛结束愣是没跑出结果,赛后才知道原来是用约数个数定理,可以直接求结果。第四题本质上升序列,没思路,直接跳过。第五题玩具蛇,暴力枚举起点,然后dfs,比赛的时候剪枝没处理好,超时跑不出。第六题蓝肽子序列,LCS的一个变形题,直接动态规划然后提交。第七题皮亚诺曲线距离、第八题画廊、第九题补给、第十题质数行者由于比赛时间问题,直接dfs,打表提交。

这次的国赛区分度很高,对比之前参加的两次,题量增加了,难度也增加了。今年很多题目靠暴力破解都解不出来。第二天便知道了自己的成绩,虽然获得了国赛三等奖,并不是特别的理想。但是我觉得还是有很多经验和教训需要总结的,经验就是通过这次比赛掌握了更多的算法,很多自己以前并不理解的算法,现在都能够明白了。教训有很多,但我认为最主要的就是我还不够沉稳,还需要继续去历练。

总结

三届蓝桥杯,让我有了太多值得回忆的东西。不仅让我增长了知识,还认识到了许多志同道合的老师和朋友。蓝桥杯是一个值得我们大学生重视和参与的比赛。在我看来,对于我们这个专业而言,实践远比理论知识更重要。而这样的比赛正式为我们提供了实践的机会和平台,作为大学生,也应该牢牢把握好这样的机遇。可能在参加比赛的过程中,我们并不一定每次都可以顺利的取得好成绩,可是每一次的经历都将会成为我们进步中的助推器。未来的时间虽然还有很多,但是还是希望大家不要错过这样的机遇,给自己一个挑战,给自己一个目标,努力的一步步去实现,在实现的过程中你会更加的完善自己。我相信这不管是对于我们自身职业的进步发展而言,还是对于我们整个人的成长而言都是最宝贵。让自己的大学生涯更加的有价值、有意义!不给自己的大学留遗憾,也不给自己的青春留下遗憾!

不过参加比赛最重要的理由并不是上面给出的那些,而是算法本身真的很有意思,很有趣味。当你真的沉浸到算法里的时候,其速度、其构思都会让你觉得精妙绝伦,有一种不可言喻的美感和快感。Donald Knuth曾经说过,程序就是蓝色的诗。如果这是真的,那这首诗的灵魂,或者诗魂,就是其背后的算法。难道窥探计算机的灵魂不会令人激动与兴奋吗?