嘘~ 正在从服务器偷取页面 . . .

OI思维水平的练习与提升


OI思维水平的练习与提升

声明:以下观点大部分为本人的自我总结,可能不适用于所有人。

本文主要谈论的是思维水平,代码水平在本人看来就是熟能生巧的问题。


1. 怎么知道自己的思维水平?

关于标题,答案其实很简单,你能想出什么难度的题你就有什么思维水平。

首先题目的思维难度可以这么理解

  • 有的题目仅要求你推导出一个函数。
  • 有的题目要求你推出函数的同时,找到函数在特定区间内的特殊性质。
  • 有的题目不仅要求你推出函数、找到特殊性质,还需要合理利用特殊性质(比如选用合适的算法优化)。

其实就是思维深度和广度问题。

如果你只能想出第二种题,那你的思维水平就是第二级。以此类推。

然而有些时候你发现,你要想很久很久才能想出第二种题,或者和正解有那么一丢丢差距

那么其实可以认为,你实际上具备了这种层次的思维水平,但不具备应有的熟练程度。


2. 什么是熟练程度?

下图(详见参考文献[1])是 Um_nik 巨佬在 blog 里给出的

实际上我定义的思维水平是离散的,也就是图中的红点。

而思维的熟练度描述了我们的水平是如何随时间连续增长的(毕竟思维能力可不会轻易的大幅增加)。

也可以这么理解我的模型,思维水平就是做出这一难度题需要的“平均水平”

而没有到达“平均水平”前,我们无法做出这一难度的题;

反之,随着熟练度增加,我们思维能力为渐渐超过当前的“平均水平”

这意味着我们可以更快的解出这一难度的题,但仍然无法解出更难的题,直到我们达到下一个“平均水平”。


3. 怎么练习和提升思维能力?

我是这么认为的:如果已经可以在合理的时间内做出 A 难度的题,就可以去做 B 难度的题了。

这个合理的时间具体有多少要看个人的理解,但我认为,想出这题至少不能让你感到十分吃力。

有很多对于思维能力提升非常有帮助的题,比如这个题单 2020,2021 年 CF 简单题精选

我个人认为 CodeForces 的题非常适合提升思维水平。

另外,最好不要刷对你来说太过于难的题,因为它可能需要拥有 A->B->C 的能力,而你连 A->B 都不行。

当然了,总重要的还是多思考多写题,甚至可以像我一样每道做过的题都写一下题解。


参考文献

[1] How to practice Competitive Programming [Um_nik version]


文章作者: q779
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 q779 !
评论
  目录