算法竞赛入门经典第2版(刘汝佳 著)学习心得
(将会不定期更新。。。)
1.
不要在用户输入前打印提示信息,比如:
“请输入
n
”,这样不仅不会赢得友好的界面分,还会因此而减分甚至丢掉所有分数,因为这些提示信息会被当作输出数据的一部分,比标准答案多出一行或多行。注意输入与输出都要一模一样,不能多也不能少。
输出完毕后应立即终止程序。不要等待用户按键。输入输出过程是自动的
在算法中,每行输出均以回车符结束。包括最后一行,除非特殊说明,每行不应有首行空格。另外,输出的每两个数或字符应以单个空格隔开。
2..
【错误案例】:
解决办法:因为我在贴代码到ACM之前,用VS2010来编写代码以及做测试,所以自带的#include “stdafx.h”,所以贴代码的时候应该删掉
3.
java代码
如果使用java代码写,得注意这个问题
解决方法:
把
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这样的重定向方式访问读写文件。
在比赛前必须了解文件的读写规定,是标准输入输出(即直接读键盘、写屏幕),还是文件输入输出,是否禁止用重定向方式访问文件。
数据要写到哪里?直接写题目规定的文件名加扩展名即可,
不能加路径
在算法竞赛中,应该严格遵守文件名相关规定,包括程序文件名、输入输出名,
不要弄错文件名、大小写、不要拼错文件名、不要使用相对或绝对路径