【蓝桥杯程序设计大赛感想】 一路艰辛 一路收获

故事开始:

  2014年来到大学,第一时间就听闻蓝桥杯,再听闻这个比赛全国总决赛的比赛地点是北京,我内心中瞬间涌现出一个信念:北京我是去定的了!


  我中职读的是计算机网络专业,期间自学了C语言,怀着试一试的心态自己一人搭车到佛山大学参加了下全国二级C语言的考试,当时报考后就买了一套未来教育出版的C语言教程和模拟题库,接下来就是一系列的题海战术,那段时间我是好充实,毕竟有个明确的目标,查成绩的时候68分!开心的我晚上差点没睡着,毕竟只是懂一点基础的知识,可以说连编写一个Hello world也要调试那么N次。


  大一的时候虽然是意气风发,不过还是连个蓝桥杯校内的选拔赛都不敢参加,我自知能力不足,没那个底气也没那个勇气….


  大二我再听闻蓝桥时,让我想起了当初的誓言和约定,便一言不发的踏入了征程。大二的我早已把C语言遗忘了,好在大一第二学期有C++课程,当时授课的是胡建荣老师,我把更多的时间和精力投入到C++知识的汲取和实践上,很快就熟悉了C++的基础知识,但我知道要应对校内的C++编程高手,广东省内各高校的牛人甚至全国各省份的精英人才,我知道自己有多么的不足。

校内选拔:

【蓝桥杯程序设计大赛感想】 一路艰辛 一路收获_第1张图片

  通过校内选拔赛我了解到了:程序=算法+数据结构,而数据结构和算法我还有很多很多是不甚了解的,线段树、AC自动机、KMP算法、DP、图论、平衡二叉树等等。看着都头晕,但是又有谁是生来就会这些呢?想得到未曾拥有的,就要付出未曾付出的。这是我一直以来的座右铭。


  寒假当人人都沉醉在春节的欢声笑语中时,我却独自一人踏上了算法的道路,我喜欢安静独处的学习。寒假我搜索了大量的学习资料,最终选择了学习鱼C论坛小甲鱼老师的数据结构和算法课程。可以说他让我更清晰透彻的了解到程序设计的核心。通过一个月的闭关学习,我大概了解了程序的底层运作原理,发现原来程序还可以这样写!那就像是发现了新大陆那样。现实始终是残酷的,学到不一定用到。在题库练习的过程中,我经历了无数的编译失败,无数的超时提醒,无数的数据溢出,无数的失败失败失败…..


  “生活就像海洋,只有意志坚强的人才能达到生命的彼岸。”我明白只有不断扩充知识才能达到我的目标。我再次疯狂的查找学习资料,终于被我找到了百度传课上有个蓝桥杯的冲刺课程而且是免费的!!通过那个课程我了解到,有很多原理我们都是懂的,而只有活用起来才是王道!代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是要自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。《算法竞赛入门经典》有一句话我非常认同:再牛×的老师也无法代替学生自己领悟和上厕所!

 

省赛:
   蓝桥杯省赛如期而至,我满心期待到达了广东省佛山大学赛点。春天的佛山大学给我宁静舒适的感觉,到达考 场后紧张的心情瞬间烟消云散。下载试题输入解压密码,查看题目,比赛正式开始,第一题是考X星球报纸的常识题目,瞬间就难倒我了。当时我采用的是简单我做、难题我跳过的战略。第一题没多想就跳过了,第二题是计算煤炭个数的阶乘累加题目,当时没注意看要求、直接填了第100层煤炭的个数(而正确答案是要填入1~100层煤炭的累计个数),没注意好直接0分。简单的题目就该认真审题,我就是因为过于粗心造成了丢分的惨重代价。同样的第七题也是细节问题没有深入了解题目的意思少写了个循环语句,又是直接0分,做到第十题刚开始是没什么思路的,刚好又想去厕所,就经过同意去了一趟洗手间,顺便洗了把脸,回去后再仔细看了下题目的要求,在最后的半小时里用了字符串拆分匹配的方式打了下代码,发现题目给出的测试用例通过后就提交了代码上去。比赛结束后看了看贴吧里大神们对题目的分析,自己粗略的算了算大概错了5题左右。难题难倒我是无所谓的,而最不甘的是细节没注意的丢分,我是非常不能原谅自己的,通过省赛我也总结到了,光是学到技术还是不够的,更需要细腻的内心和那种理解题目意思的能力,比赛回来我足足苦恼了一个星期,心想是要和北京无缘了。然而幸运从来都是眷顾在逐梦路上努力拼搏的人,查成绩那一刻我兴奋的快要跳起来,广东省排名第13名,省赛一等奖!获得全国总决赛资格!北京我来啦!


  省赛得一等奖也就意味着可以去北京参加决赛了。这实在很令人兴奋,很早以前就对北京充满着无限向往,也总想着有一天能去看看它。终于,这个愿望在大学时期就可以实现了。回顾这次省赛,心情起起落落,有过欢乐,也有过悲伤,有过期待,也有过失望,还好以较好的结果结束,从中我也想到了一条,不要太早给自己下结论。做完一件事,要多向好的方面想,不能让消极的情绪影响自己,对于已经过去且已经无法改变的事实就坦然接受它,有时候,结果其实并没有自己想象的那么糟。


  省赛后我开始寻找更高效的学习方法或者是可以更好的学习的网站。计蒜客在这个时候出现了,他的教学方法让我对数据结构和算法的知识有了更深一步的了解。接下来的总决赛备战日子就是做历届的题目来找蓝桥杯比赛的主要考点,可惜的是蓝桥杯的题目是每年不同每年新花样的,要做的只有是不断更新自己的能力和见识。提升自身编程和算法的能力才是最好的战略。


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


  解决问题是一个从量变到质变的过程。这项技能是从点滴积累起来的。怎么样才能达到目标提升自我?
1、细心是必备的条件。没有它,即使遇到问题,也不会找到问题的所在。如何养成细心?这就要养成淡定的生活态度,不骄不躁,能够平淡的看待事情。
2、广泛的阅读。阅读不仅仅是指专业书籍文章,也包括所有的书籍文章。俗话说“书读百遍其义自见”,广泛的阅读不单单会提高编程能力,也会进一步巩固细心。当然,读书也要取其精华,去其糟粕。阅读能够拓宽思路,在遇到问题的时候能够做到不拘泥于在一个点上。
3、刨根问底的学习态度。这样说可能有点过了,但是在解决了问题之后,要记得总结一下,有需要的还要深挖其中的原理。如果不做总结,当以后遇到相同或类似的问题时,你真的可以确保能够很快的想起解决方法?

国赛:
  在准备决赛的过程中我得到了更大的提升,省赛结束后两个月就会进行全国决赛。我相信时间会为我的努力给出答案。很快我带着信念和向往坐上了通往北京的列车,20多个小时跨越2294公里。一路上经过无数的城镇和村庄,听到车窗外不同的风景渐次变化,我彻夜未眠,18岁出门远行的少年怀着对未知世界的好奇和未来生活的雄心。黎明之前,火车驶进北京,两边渐渐出现一栋栋高楼,一盏盏路灯。下了车,我呆呆地看着一城灯火,那是我第一次和一座大城市相遇,直到现在我仍然能清晰地回想起那一刻的震撼和感动。

  我的比赛地点是北京建筑大学一间有着80多年历史的学校,我和队友卢煜以及领队李海平老师到达北京后第一时间就先去踩点。五月末的北京格外清爽,当地居民说我们运气很好,雾霾刚好在前一天散去。带着愉悦的心情我们把考点都溜了一遍,并且还拍了合照。20多小时的火车对我这个晕车的人来说也算是一种挑战。

  回到宾馆我习惯性的打开电脑,对以往编写过的题目再一次的复习。透过房间的窗户我看到夜里的北京灯火通明。眼看明天就要比赛了,我没想太多,要学要练的也都是前几个月沉淀下来的。学习程序设计需要的是兴趣,正确的学习方式和坚持练习。考前的一个晚上我做的更多的是,对排序算法和我那存放了1.5万行代码的cpp文件进行快速扫描和看下以往做题的时候留下的注意事项备注。晚上10点我们还在讨论2014年决赛第三题横向打印二叉树的做题技巧,我也听了下海平老师的讲解,对于队友卢煜和海平老师的投入瞬间有种莫名的感动。晚上11点多听着歌我很快就入睡了,夜里的北京格外宁静就像我的内心一样平静。


  决赛当天,我早早就被阳光照醒,发现头晕,题目也看不下去了,好在平时有健身的习惯,吃过早餐后就直接在宾馆的空余位置上做起了几组俯卧撑,波比跳和高抬腿,在床上直接平板支撑和仰卧起坐,果然有效头晕的症状马上消退了,整个人都精神了好多。再和队友和老师闲聊了几句,就到了宾馆附近的面馆急急的吃了面,马上赶回宾馆睡了个中午觉,起来后直奔赛场。


  到达赛场,看着早已在赛场外熙熙攘攘的比赛选手,当时看到这么多喜欢程序的,来自各省份比赛的选手确实是有点激动。比赛是紧张而好玩的,比赛提前45分钟去到考点,不仅能放松心情也可以提前半小时进入考场。决赛和省赛都是配有笔和纸的,纸不能自带只能用他们提供的草稿纸,而笔如果不放心的话可以自己带进去考场。输入准考证登录账号,记住监考员所说的考题解压密码,还可以打开软件提前把头文件、排序算法、全排列等等的提前输入,编写相应的函数,如果真的考到就可以直接调用了。

   比赛开始相比省赛我更加淡定了,坐在最后一排也更利于我思考。

 

   打开第一题,题目是要找出两位以上的偶数,末尾两个数有可能出现的所有情况,顿时就想起了STL标准模板库里面的关联容器set,把所有情况放进去,set会自动把重复的项跳过,那么最后存放在set里面的都是不一样的值,再加上一个暴力循环轻松解决。

 

   第二题是1~9填入9宫格保证行列对角线,镜像和翻转都不重复,当时直接用算法头文件algorithm引用next_permutation函数进行全部排列的操作,有了这个函数只需定义一个数组,再设定范围就可以得到范围内全部的不同的排列(如果看不懂,没关系自己百度下操作过程,实践下就好了)。很多情况下如果忘记了函数的名字是没有关系的,要记得灵活运用起API帮助文档。蓝桥杯提供的C/C++帮助文档是中文的,大大的方便了我这个英语渣渣。我当时算了算如果要排除镜像和翻转好像要除以6或者是除以8,当时没纠结太多直接除了6就提交了。

 

   第三题是代码填空题,考的是数字字符串转换为数字数值的技巧,数字字符串只需减去‘0’或者同样道理0的ASCII码是48减去48也是可以的,那就完成了数字字符串转数字数值的操作。题目研究了很久最后总算摸清了,直接把正确代码提交了。

 

   做到第四题还算顺利,第四题是循环地来回1,2,3…数数抽球票的题目。刚开始想可以使用容器vector做,再使用迭代器模拟点数和抽球票的过程,后来打到一半发现甚是复杂棘手,干脆一下全删了,直接使用数组模拟,数组也算是秒题利器,很快码完代码,调试了那个5次才保证了代码的正确性。这次总决赛我做得很稳,生怕忽略了小细节。

 

   第五题是一个模拟骑士行走和射箭的题目,围墙上有箭靶给出箭靶上的射箭的数目,求出骑士行走的唯一路径,当时用例给出了4、2433、4333。开始很不能理解题目的意思,在题目一大串的描述中越看越是晕,后来我发现有一个好办法就是新建一个文档txt文件,把题目的重要信息复制进去,那就不至于像我比赛的时候看的晕头转向的。那时候只随手的打出代码算出了全部可能通往出口的路径,还没加约束的条件,因为题目实在难啃。

 

   第六题典型的大数据和考题目理解能力的题,干扰项有很多,我第一时间扫了三遍题目都不知其所以然,直接写了个判断语句把题目给的测试用例按条件输出,说不定能得到点分数,保证正确就没多看题目了。剩下的时间我检查了下前面题目的正确性,答案有没有提交到网页中。

  在最后半个小时我心想第五题我不可能做不出来啊!毕竟以前也碰过类似的DFS深度优先搜索的题目,我做了几个深呼吸放松了下心情,想了想比赛完应该去哪里逛什么的,心情放松了,我再次看第五题的描述,终于被我弄懂了题目给出数字的意思,其实数字意思就是代表了对应墙上箭靶上箭的数目!那时候只剩下20分钟不到了,但是理解了题目再加上先前我准备好的代码,也只是加多个约束条件而已,很快的我打出了代码,剩下10分钟的时候,我再次调试了下第五题的程序,正确输出!那时候我差点要叫了出来,心想还算不枉此行的。很可惜的是在理解题目上面确实耗费了我不少时间,连第六题都没什么时间做了,留下了一个遗憾。6点比赛结束后,迎接我们的是在比赛地点外等候多时的海平老师。我们说了下做题的心得,我得知队友卢煜连第六题都做出来了,心里是十分佩服啊。前面的路还很长,我能做的只有风雨兼程!海平老师叫我们比赛后就应该放松放松、别去多想。就这样我们开始停下匆忙的脚步,欣赏起了5月的北京。


   鸟巢、水立方、清华、北大、天安门、故宫、万里长城、圆明园等等等等,以前向往的地方现在都成为了近在眼前的场景。我很感谢一路上支持我的家人、老师、队友和我自己,没有蓝桥杯这个比赛我不会学到那么多,也希望在以后有更多的师弟师妹能通过类似的竞赛充实自己、提升自己、改变自己。

故事收尾:
   第二天早上10点,我查到了总决赛的成绩,全国排名第25名国赛二等奖。看到这个成绩我很平静的开心了一下,可惜的是没有拿到梦寐以求的一等奖,不过那也是无所谓的,毕竟在这场逐梦的路上,我已经是自己的赢家了。指敲代码,我以01创天下;逐梦蓝桥,飞扬青春执牛耳。
   感谢蓝桥,感谢一路上的风风雨雨….

2016年6月4日

 

右一带帽子的是我 中间的是我们的带队海平老师 左一是我的战友卢煜同学

 

 

北京大学邱德拔体育馆颁奖典礼现场

 

我和天安门的合照 哈哈哈 终于是来到帝都中心了

转载于:https://www.cnblogs.com/xieyupeng/p/6892416.html

你可能感兴趣的:(数据结构与算法,测试,网络)