《蓝桥小记》
蓝桥杯省赛从9:00-13:00历时4个小时,今年(2018年)的题和去年的题差不多有易有难,整体来说今年出的题即使做不出来也会让你觉得比较生动有趣味性,可能是为了吸引更多的人参加吧。
第一题:求2000/5/4是一年的第几天,这道题用excel稍微计算一下就出来了。
第二题:求半径为1000的圆内包含多少完整的1 x1的方格,这个题分不高还是耗费比较多的时间的,一开始想通过几何的手段算出来没走通,后来才枚举1000X1000方格筛选出在圆内的方格并计数,最后乘以4得出结果
第三题求复数(2+3i)^123456的结果,这道题先用递归尝试了下报错找不到原因改用循环了,思路还比较清晰用for循环依次通过乘法分配率求i次方后新的实部和虚部,但是不知道为什么用样例测试的时候结果不符合,可能是哪里代码写错了。
第四题喜欢摔手机的神秘x星球,出场的手机必须从1000层的塔从底层往上一层层试摔,刚好摔不坏的那一层的层数即为耐摔系数,求每厂抽样3个手机,在采用最佳策略的运气在最差情况下最多需要摔多少次才能求出耐摔系数。一脸懵[发呆][晕]
第五题一个递归快速排序算法,要求补全代码。虽然没有完全看懂算法含义,但把代码copy到eclipse结合样例尝试补代码编译测试通过了。
今年少了一道代码填空,6-10全是编程大题。第6题求递归三元组个数,三次嵌套for循环+if筛选计数样例测试通过就ok了。
第7题编程求二维平面某一点的螺旋折线长度(类似回旋加速器,只不过不是曲线是折线),没有摸索到规律。
第8题求论坛"热帖"编号:连续D时间内,如果点赞次数大于k为热帖,有个稍微复杂点思路但没有时间尝试了。
第9题全球变暖:一个NxN 二维方阵,点号表示海洋,#号表示岛屿,如果#号四面有一面临海未来就会因全球气候变暖淹没,求未来剩余岛屿个数。这道题思路还是比较清晰的:将方阵读取到二维数组,循环遍历筛选出岛屿并判断是否四面全是岛屿,是的话则计数,最后打印结果样例测试通过。
第10题1-N自然数用二叉树排序,要求父节点小于子节点。有个递归的思路不过最后没有时间试了:求出二叉树层数f,然后进行递归:用上层(i-1层)的传过来的数据,把本层(i层)排满剩下的(N-(2^i-1))(总数减去已排的)个数据交给下层(i+1)去排。出口条件设置为f=0,即排到最后一层推出。但是有个问题不知道如何巧妙设置筛选条件和参数保证父节点小于子节点,还需要大神赐教。
以上就是今年赛题的一个简单回顾了,当初一个错误的报名决定导致现在一个尴尬的局面:大周末跑去参加比赛,结果宾馆的老板放一晚上歌不停,不走运的我就在要睡觉的时候还小心把屏幕给压坏了,电脑一坏后面很多事做起来就要费劲麻烦了。今天晚上又要星夜兼程了,赶上明天第一节早课。
心得体会与收获:
时间还是比较紧的,28号买票订房间,29号开始正式学习算法和做往年真题准备比赛,学习了两三天吧还是有比较大的收获的,领悟到了递归算法思想和公司分组作业层层任务分配,以及流水线作业等实际运行机制之间紧密的联系,学会了通过画树状图辅助理解递归思想以及上台阶、溜冰鞋等经典递归问题。另外还学习到了一些比较经典的博弈算法以及高僧斗法等博弈问题,刷了一些如海盗比酒量、猜年龄等比较有意思的小算法题。当然也有一些如涉及欧几里得定理的包子凑数等看了十分费解的问题。计算机具有运算速度快的特点,所以很多有范围尤其是大范围的问题是可以很快通过暴力枚举加筛选解决的。有些问题可以通过数学思维和手段进行简化易于求解 ,而有些问题必须利用一些数学定理才能解决。
这次是亲身实践了蝴蝶效应:曾经一个小小的报名冲动,可能在几个月后损坏一台电脑屏幕。蓝桥虽好,贪杯不可,过则伤己,点到则止。