算法竞赛到底在训些啥

发布于 2022-08-07  121 次阅读


有九年义务教育背景的学生都有解题经验。而解决算法问题的思维量往往相当于解决一道中上的数学题,加上实现等思维。也就是说我们已经接受了十多年的训练,但仍很难说会做题。

在算法竞赛中,我们必须花尽可能短的时间进行高效的训练。所以抛出问题,算法竞赛到底在训些什么?

代码能力

代码能力,我认为是 写出自己想写出的东西的能力

虽然说不是什么稀罕的东西,但是需要通过时间积累。在竞赛当中直接反映的就是实现的能力。怎么样实现得 短(快),正确(无bug),易于维护和理解(码风)是一个选手的基本功。

积累套路

显然在赛场上,必然会运用到一些之前写过题的思路。越是高水平的选手,能够运用到的思路就越多,也越容易来idea。

许多人认为算法竞赛最重要的是学算法,因此死磕到底一个算法,在做题的时候如果遇到学过的算法却做不出来就抓狂,觉得已经花了大功夫去学却还是做不出题乃至信心丧失。其实这也是一种误导,水平较低的出题人在出题时会先考虑出一道什么算法的题再去想题面和细节,而不是直接想出一个可做的idea再去想如何solve,这也使得不少选手做题时也先想用什么算法再想怎么解决。(因为这样从结论出发的思维方式显然要更简单,就和看到一道数学题先想它可能是什么类型一样,但有些题就是要先动手推一下才有思路)

事实上,随着学习的深入,就会发现在解决一些比较复杂的问题时都需要我们去层层深入,综合运用各类算法来一步步解决问题。

当然从算法入手考虑问题也是合理的技巧,可以综合使用。但在学习的时候不应当死磕单一算法,应当在运用中加深理解。

算法思维

竞赛中不乏思维题/结论题,高水平的选手就是能马上想到解法。这与套路的积累也有关,但这种往正确方向思考的能力也是需要积累的。


盛夏日落迟 灯火未夜匆匆明