心理效应

为什么讲如何做题?

  • 浪费时间刷几千道水题毫无意义。
  • 做真正有用的题目。
  • 在一道坑爹题上浪费大量的时间是十分没有性价比的。
  • 真正有效的训练在一年内就能成为很强的选手,而一味的磨蹭和颓废4,5年也就那样。
  • 成功的路并不拥挤,因为大部分人都在颓☺

做题的目的

  • 做题的目的是学到新的东西以及锻炼代码能力,而不是盲目刷OJ的rank,那没有任何意义。
  • 提高算法能力(想出做法的能力,分析问题的方法等等)
  • 提高代码能力(写出正确的代码的能力)
  • 提高调试能力(将错误的代码改对的能力)

我对于OI比赛的题目的看法

  • 对于省选到NOI来说
  • 大部分由于做过类似的,不用想就能解决。
  • 之后的大部分顺着题目进行一些简单的分析,就也能转化成做过的问题。
  • 套模型。
  • 学习更多的解题模型,可能具体也可能抽象,要多加思考。

在训练过程中如何做题

  • 选择一个好的OJ/TC/CF <-优秀的题目来源
  • 适度而不过量的思考<-节约时间
  • 如果做不出来,在看了题解之后,总结自己做不出来的原因是什么,以完善自己今后的做题方法。
  • 做题方法是一个很抽象的概念,需要经验的积累(和一定的智商?)
  • 面向思路,不面向代码 <-需要接受优秀的引导

一些建议:提高代码能力

  • 代码能力很大程度上取决于经验,你可能觉得这种可能需要大量的练习,但是其实也是有捷径的,那就是参考别人的代码。
  • 最佳的方法是找一些可能比较难写的题目(APIO 2010 寻路, APIO 2011 kunai,CTSC 2011 杀菌计划挺多的),自己很可能写不出来,这时可以参考别人的代码,搞明白那些细节都是怎么处理的,
  • 优秀的代码风格能够极大的提高代码能力。

在比赛中如何做题?

  • 分析问题的方法是什么?
  • 不是凭运气猜出做法,而是根据一定的思路从容的得出解法。

总结如何做题

  • 做题说白了就是建模和解决模型的过程。做不出来可能有两个原因,一个是模型建错了,一个是对模型了解不够。前者说明分析没有到位,后者说明知识不够扎实。
  • 对各种模型有清楚的了解,这样才能轻松的做题,真正的高手不一定智商很高,但是建模能力一定很强。

分析问题的方法:我的一些经验

  • 从简单的情况开始分析:经典方法,对原题没有思路,那么分析问题的简化版。
  • 经典例子:找出字典序最小的解,那么我们先分析怎么找出一个解。
  • 人的思维很大程度上跟关键字有关系,比如一个题目怎么想都不会,有人跟你说“容斥”,你可能瞬间就会做了。不妨列出对于这类问题已知的一些解决方法关键字,思考思考能否做。

原作者:HFLS-WJMZBMR