2.1 引言 第1章中提到过,程序设计竞赛是培养解决问题能力的理想环境。但并不能通过死记硬背算法去拼命解题而培养出来。解决问题的能力不同于程序设计和算法,它没有实体性的定义可循,而是一种抽象概念。因此,只靠单纯的反复练习很难培养。大多数读者小学开始就已经学解算术题,但那只是针对给出题目的解题方法。因此,实际上很多人最终只是停留在机械式解题过程中的体会和盲目的尝试中。 要成为解决问题的高手,需要更高层次的磨练。这种磨练的目标是练就解题的技术,而不是解题本身。要认清自己解决问题的方式,了解其不足,领会哪些部分需要改善。这个过程与学习高尔夫的击球类似。任何人都会挥杆击球,尝试若干次偶尔也会进洞。但并不是随便多次击球后就可以提高准确率的。为提高击球实力,应把挥杆的过程分成几个主要的部分,不断检查自己是否已经掌握每个部分,对做得不正确的阶段要找出改进方向。 本章首先把解决问题的过程分成几个阶段,然后介绍一些提高各阶段能力的技巧。