首页 > 代码库 > OJ简要攻略

OJ简要攻略

现在绝大多数的OJ网站,不需要文件输入、文件输出。这与Noip复赛是有区别的。
OJ简要攻略如下:

一、仔细看题目,至少看两遍。
因为题目的输入、输出要求,一般都有非常严格的说明。
如果没有理解清楚,就算程序的主体思想对,也得不出正确的格式,也依然无法AC。

二、根据题意画出解题结构草图。
这题主要用什么方法来解决?核心的思路要画出草图,除非题目非常简单。
草图倒不一定是非常严格的流程图,但自己的思路要表达出来。
只有这样,在编程的时候,不至于迷失。

三、分步骤来
除非非常简单的水题,一般的题,要进行分步调试。
当然,一步到位是最好的。但是,在没有熟练之前,分步骤调试,是最合理的方法,不容易出错,还容易逐步提高编程能力。
一般按这样的步骤:
1、核心代码
先编写核心代码。
核心代码必须是完整的,可以运行的。
在自己的ide中,调试核心代码。输入数据,然后观察输出,看是不是正确的?
如果输出不正确,可以在代码中加入write或者writeln语句,来观察更多的变量输出。通过观察,分析错误所在。
这是关键的一步。编程能力,主要是调试能力。只有通过不断调试,才能掌握正确的编程技巧。
2、进行扩充
核心代码完成后,再进行扩充。这时要兼顾所有细节,使不光解题思路完全正确,输入、输出的格式也要完全正确。
扩充也要分步骤,一步步扩充。
3、完整代码
完整代码必须在ide中通过运行。一方面,语法必须没有错误,没有警告。另一方面,要通过示例输入数据的测试。

四、求助
当不断调试,还是查不出错误所在时,可以问老师、问OJ中的解题(论坛)、问百度。
很多错误,非常隐蔽。一旦觉悟,观察到了错误所在,解决是非常快的。
这时要注意,自己犯的是什么方面的错误?是语法错误,还是逻辑错误,还是运行时错误,还是解题思路本身就不够先进?
不断总结,才能使编程能力逐步提高。
光做难题不可取,要先易后难,循序渐进。

五、切忌打表、切忌抄代码
打表是一时AC,搞清楚原理才能长久。
网上有很多代码可以AC,但那是人家的代码,在自己没有消化吸收时,去AC,只是做了表面文章。对编程能力的提高,毫无帮助。
看人家的代码,主要是看思路。自己能够消化吸收人家的代码,有助于编程能力的提高。
注意抄代码与吸收人家思路(方法)的区别。

最后祝同学们编程愉快。