我是高职java组的选手,这次比赛取得了国一前三的成绩,之前作为一个懵懂的大一新生,参加过一次比赛,只取得了国三的成绩,这次也算是实现一下小目标。不过可惜二次都没去北京(说好的300旅游呢/(ㄒoㄒ)/ )
这应该是我最后一次参加蓝桥杯,这次比赛的题解我就不写了,网上很多,我就给之后参加蓝桥杯的选手一些建议吧。
1.蓝桥杯介绍
一共十题,前5道填空题,后5道编程。
以上述题目为例,编程题的时间一般是1秒以内,特别是最后几题,想要1秒过所有数据是需要一定的算法功底的,题目最下面会有数据规模,按照你的程序能过数据的百分比乘题目分值。
至于内存不用管,主要你的编译器不报错就行,内存开大了,编译器是会报错的,但是千万不要去改编译器的参数,那就是掩耳盗铃了。
一般的小白就是问做几道什么什么奖。其实准确说是按照分数。
蓝桥杯不论国赛还是省赛都是150分。
十道题分值依次是:5,5,10,10,15,15,20,20,25,25
一等奖的话要看难度。至于三等奖话做3道签到题就稳了
签到题是填空题前2道和编程题第1道
省赛:一等10%、二等20%、三等30%,没有优秀奖(参与奖)
国赛:一等不高于5%,二等20%,三等不低于25%,其它优秀奖(除非0分)
2.做题技巧(投机取巧)
1.直接输入样例
2.日期什么的 可以用计算器和excel
3.不要作弊
3.真做题技巧(算法)
1.注意数据类型和转换:
大于10^9的数据要开long,特别是题目要取模的时候。double会有精度丢失,尽量不要做比较,非要比,也要加上小常数。
整数乘浮点数时要在前面多1.0,因为是从左往右计算,默认转换成左边的。
2.估计时间复杂度:
评测机一般每秒可以 10^8 的数据,如果题目的数据规模是 10^5的话,那么你的时间复杂度就应该小于 n^2,而且等你们学多了,其实看到题目的数据规模就可以猜到题目考查的算法。比如上面的数据规模,我猜就是nlogn。而nlogn又可以想到二分,倍增,数据结构之类的。
3.打表:
一般在找规律的题目会使用,就是提前把数据全部算出来,放在数组中,就可以在O(1)算出来,有时候会有奇效,同时这也是辅助你找规律的方法。
4.对拍:
简单的来说,就是你先把题目的暴力做出来,然后在写优化的时候,通过暴力的结果来验证,因为测试样例少,而且暴力算法一般是正确的,优化算法不一定保证正确性,还有即使你没优化出来,也可以拿一定的分。
4.学习路线
目前强烈不建议用蓝桥杯自己的刷题系统,不论老版还是新版的,算法分类不详细,题量太少,往届题目的话,等把基本算法模板熟悉了再看,看往届题目主要是熟悉蓝桥杯题目的类型和描述,只看最近2年的,因为蓝桥杯题目的风格在不断的变。
还有个很火的力扣,我个人不推荐初学者用这个学习算法,因为力扣是面向企业的,而对于算法来说,典型的算法模板题不明显,导致学习进度慢。不过力扣的周赛和双周赛是强烈推荐的,是为数不多的难度对算法初学者比较友好的比赛,可以通过比赛来反映哪方面的算法薄弱,不过奖品什么的就有难度了。
学习的话推荐洛谷。洛谷的话是老牌网站网站了,好多OIer,说得最多的就是orz%%%,用的话就按照算法的分类,个人或者官方的都行,不过其实学习最快的方式是,有个可以帮你规划算法学习路线,规范代码写法,帮你理解问题,发现程序bug的老师。
还有一个网站是acwing,这个主要是为yxc老师,他会做蓝桥杯和其它比赛的题解,太强了orz%%%,比赛完了就等他的题解,绝对是能AK的题解。(AK,指All-Killed,能过全部数据)
最后
我这次的获奖我很高兴,但我也知道,我不过是力扣2000分水平,那么力扣2000以上的人,都比我强。我能拿国一,不过是环境不同罢了,现在我准备去做开发了,我还不知道算法竞赛和我的人生还会不会有交集,现在只能专心开发和专升本的事了,等我专升本了,我想打一场acm。
蓝桥杯的难度只是算法竞赛海洋的一滴水,如果你对算法竞赛感兴趣的话,蓝桥杯只是你的垫脚石,在acm你会遇见更多高手,祝你前程似锦。