报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集
20周的完整安排请点击:20周计划
每周发1个博客,共20周(读者可以按自己的进度选“正常”和“快进”两种计划)。
每周3次集中答疑,周三、周五、周日晚上,在QQ群上答疑:
第 4周: 杂题-1
正在学编程语言(C/C++、Python、Java),或者刚学过语言,还没有开始学数据结构和算法的同学,有一些疑问:如何快速入门算法竞赛?如何提高编码能力?如何提高计算思维?
答案是:从杂题开始,并且大量做杂题。
杂题是什么?
在算法竞赛中,杂题(英文Ad Hoc)是必不可少的一种题型。所谓杂题,就是不能归类为某个算法或数据结构知识点的编程题。简单地说,杂题不能或不需要套用现成的算法和数据结构,只要学过编程语言就能做,考核思维、逻辑、编码能力。
杂题有模拟题、构造题、思维题、找规律题等,这些题可能比较简单,也可能比较难。
下面用3题说明杂题的难度,分别是简单题、中等题、难题。
(1)简单题:油漆面积
这一题要得满分很难,不过30%左右的分数有简单方法。
(2)中等题:外卖店优先级
是不是感觉有点难?看看代码:外卖店优先级的代码
(3)难题。如果中等题让人有点绝望,下面这道题更绝望:点灯游戏
如果想了很久还没有思路,这里是题解:点灯游戏的题解和代码
通过大量练习杂题,提高编码能力,建立计算思维,并积累一些编程和建模的技巧。
(1)提高编码能力。精通编程语言是程序员的基本功。写代码时,对于编程语言的语法、简单逻辑、常用系统函数能做到不假思索、基本不出错。具体要精通的内容,翻开一本C/C++语言教材,包括这些:数据类型、运算符、输入输出、简单字符处理、选择结构、循环结构、数组、结构体、函数、指针、文件等。
(2)建立计算思维。先了解计算思维,这篇文章挺好的:什么是计算思维?
计算思维是指具有这样的能力:
(1)描述一个问题;
(2)确定解决此问题所需的重要细节;
(3)把问题分解成小的、合乎逻辑的步骤;
(4)使用这些步骤来创建解决问题的流程(算法);
(5)评估这个过程。
计算思维体现了解决问题所需的必要技能:抽象、分解、算法思维、泛化与模式、评估、逻辑。
参加蓝桥杯时,做杂题的能力有重大作用。
(1)纯粹的杂题,不需要用什么算法。尽量得满分。
(2)很多题的100%得分需要算法,30%得分可以用杂题的做法来做。例如前面提到的油漆面积。由于蓝桥杯只有4小时比赛时间,往往来不及得到100%的分数,此时可以用简单的方法得30%的分数。
后2周就要开始学习数据结构和算法了。在这之前尽量多做杂题,熟悉编程语言、提高编码能力、建立信心,为进一步做好准备。下面是蓝桥题库的题目链接。
蓝桥题库的模拟题-简单
蓝桥题库的模拟题-中等
蓝桥题库的模拟题-困难
蓝桥题库的枚举题-简单
蓝桥题库的枚举题-中等
蓝桥题库的枚举题-困难
下周的主题还是杂题,将介绍和讲解一些较难的杂题。