2015蓝桥杯决赛

五月二十八号,坐上了开往北京的火车。第一次到北京参加全国性的比赛,第六届蓝桥杯决赛,心里面还是很兴奋的,同时也有一点点紧张,还是希望自己能拿一个比较好的成绩。提前一天到,大家看了看考场,比赛地点在北大计算中心,30号下午一点开始了正式的比赛,比赛时间四个小时。
比赛题目类型和初赛差不多,有结果填空,代码填空和程序设计三种类型。但是题量少很多,一共只有六道,分别是两道结果填空,一道代码填空,三道编程大题。我参加的是C++本科A组,比赛结束了,凭印象还是先把题目总结一下。
A.结果填空

题目大意:有一个2×5的矩阵,将1~10十个数填到里面,保证满足下面条件:右边的数一定比左边的大,上面的数一定比下面的大。
题解:这是一道简单的深搜,注意添加visit数组标记,每个数字只能使用一次。可以使用输出中间结果来判断算法正确性。

B.结果填空

题目大意:类似于九宫格,现在有一个4×4的矩阵,要求将1~16填入,满足每行每列以及两个对角线的和都是相等的。
题解:
这也是一道深搜,但是不减枝的话就跑得太慢了。我们可以在每行排完之后就进行一次判断是否满足和等于34,当排完后在最后判断每一列和对角线是否满足。按照简单的减枝,还是跑了好一会儿才跑出来。但是在这种题上面不能浪费太多时间,只要能得出答案。

C.代码填空

题目大意:程序的功能是将一个二叉树在控制台打印。需要填写的只有一句,但是里面的关系还是比较复杂的,看了一会儿之后没有思路,就按照程序的大概意思随手试了几个变量,最后试出来了。试的过程也不是乱试,还是要大概明白里面关系的。

D.编程大题

题目大意:有一个矩阵,里面有起点A和终点B,中间都是‘+’或‘-’,一辆坦克从A走到B,但是要求只能一个‘+’一个‘-’这样交叉的行走,问行走到终点的最短步数。
题解:
求最短步数,最先想到的就是广搜,在递归的时候加一个判断来控制行走方式就好了。

E.编程答题

题目大意:其实比赛的时候并没有看懂题目,关键是样例没解释出来,这道题直接跳了。大概意思是说有一个字符串,将这个字符串分解,左边的(奇数长回文串)数目与右边的非(奇数长回文串)数目和为得分,求最大得分。这里(奇数长回文串)是一个整体概念,右边只要满足不是(奇数长回文串)就可以得分。
题解:其实并不会。。。

F.编程大题

题目大意:有两种积木。用无限个这些积木问能拼成n*m的矩形的形状有多少种拼法。
题解:这道题自己做的时候也只是在尝试,因为不确定能过多少,但是感觉大概方向是对的。这道题的数据对于100%,n(1~100000000000)很大,但是m(1~6).所以我先画出了所有宽为1~6的积木的组合情况,这样我们不用考虑m的情况,仅分割n就可以了,转换成了一道dp问题。dp的思想是没错的,关键是递推关系式,因为最小组合图形n只会在0~5内变化,所以我的dp转化关系式:
dp[i][m]+=dp[j][m]*dp[i-j][m] (0 < j < 5);
这是我当时的想法,但是并不是很确定,而且对于100%一定是需要使用滚动数组的,最后也没有实现,只是希望能过小数据就好了。

比赛感悟:

关于算法:
感觉蓝桥杯比赛对于算法的要求还是比较低的,深搜广搜是考得比较多的,初赛涉及组合数学的一些相关题目,代码填空题大都是考回溯,所以规律还是比较好找。编程大题最后出dp的可能性会很大,而且是要求用滚动数组过大数据的,初赛和决赛都是这样。如果准备的话这些算法可以重点看一下,关键是多练习,找到自己的节奏,比赛的时候一定要冷静,认真去分析,保证正确率。
关于蓝桥杯比赛:
对于普通大学的计算机或非计算机专业的学生来说,蓝桥杯还是比较入门的一个比赛,不像ACM竞赛难度那么高,而且蓝桥杯偏向于工业与实践应用比较多。挺适合那些对编程感兴趣,但是又不搞ACM的同学参加。虽然网上对蓝桥杯的吐槽会很多,官网的OJ做的也实在很差,但是能看到比赛主办方也在不断的完善与改进,在摸索中一点点的进步,蓝桥杯还算是实实在在是为学生的发展与提高考虑的一个比赛,并且面试的时候这些奖项也是用得到的。
对于我自己:
国三的结果还是有一点失望的,因为觉得做得不错,但是因为一些失误错失了国二,自己觉得也是一个教训。毕竟比自己强的人还有很多,练习的还不够。蓝桥杯给我了这个机会到北大比赛,和清华北大等高校的学生去同场竞技的机会,这也让我能到一个更大的环境去看到别人有多优秀,以后要努力的地方还有很多,有差距才会有动力,希望能在算法的道路上走得更远。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值