ACM竞赛需要注意的一些编程习惯

算法竞赛入门经典第2版(刘汝佳 著)学习心得

(将会不定期更新。。。)

1.不要在用户输入前打印提示信息,比如:“请输入n”,这样不仅不会赢得友好的界面分,还会因此而减分甚至丢掉所有分数,因为这些提示信息会被当作输出数据的一部分,比标准答案多出一行或多行。注意输入与输出都要一模一样,不能多也不能少。

  输出完毕后应立即终止程序。不要等待用户按键。输入输出过程是自动的

  在算法中,每行输出均以回车符结束。包括最后一行,除非特殊说明,每行不应有首行空格。另外,输出的每两个数或字符应以单个空格隔开。

2..

【错误案例】:

ACM竞赛需要注意的一些编程习惯_第1张图片

解决办法:因为我在贴代码到ACM之前,用VS2010来编写代码以及做测试,所以自带的#include "stdafx.h",所以贴代码的时候应该删掉

3.java代码

如果使用java代码写,得注意这个问题

ACM竞赛需要注意的一些编程习惯_第2张图片

解决方法:

public去掉或者是写成public class main(){   }

4.不要让程序“按任意键退出”,例如调用system(“pause”),或者添加一个多余的getchar().一般在程序末尾添加return 0(不要忘记return 0!!).

5.一般情况下,程序不能直接读取键盘和控制屏幕,即不要在程序中写getch(),getche(),gotoxy(),clrscr().

6.写程序算法的时候,应当注意乘法溢出问题,比如第二章的提示2-10。(可以参考一下http://blog.csdn.net/leafinsnowfield/article/details/39900813)这个实例

7.要输入很大很大的整型时,应该用long long类型,其范围是-2的63次幂到2的63次幂-1,输出格式符号(“%lld).如果涉及long long的输入输出时,常用C/C++中的输入输出流,或自定义的输入输出方法.

8.文件输入输出:

   并不是所有算法,竞赛都允许用程序读写文件,甚至有的竞赛允许访问文件,但不允许freopen这样的重定向方式访问读写文件。

在比赛前必须了解文件的读写规定,是标准输入输出(即直接读键盘、写屏幕),还是文件输入输出,是否禁止用重定向方式访问文件。

   数据要写到哪里?直接写题目规定的文件名加扩展名即可,不能加路径

 

在算法竞赛中,应该严格遵守文件名相关规定,包括程序文件名、输入输出名,

不要弄错文件名、大小写、不要拼错文件名、不要使用相对或绝对路径





你可能感兴趣的:(ACM竞赛(学习))