acm水题易错点

1.注意数据范围;

        a.特殊数据,如0       b.输入数据量很大时用scanf (否则超时)   c.当数据很大时用long long,还大就用字符串string(与取模联用)    d.当题目没提到数据范围时可能很大,用string


2.当处理实数时注意精度,实数里没有等于。如判断实数a+b等于c------fabs(a+b-c)<0.0001(题目给出的精度)


3.超时问题: 

a.用空间换时间----填表(把所有可能的结果都填在表内)   b.用scanf代替cin     c.可能是规律题

d.题目没有要求无限输入,就不要写成while(~scanf("%d",&n)),这样会迷之超时。 e.编译器问题,有时候不能用scanf和printf,只能用cin/cout,否则要么超时,要么WA;如FZU 1402


4.当数据很大出现超时超内存时,a.可能是规律题。b.可以填一部分表,另一部分计算。


5.当写s1[i++]=s2[j++]时,最后要加上字符串结束符号:s1[i]='\0';


5.注意输出格式:

a.不能多一个空格,多一行空行。 b.当输出结果保留三位小数时,有的输出0,有的输出0.000;


6.当题目没有说数据有序时,不要认为它就是有序的。(题目没有提到的条件不要默认,这点经常错!!)


7.取余时,每一次循环都要取一次余,不要在最后取余,可能会爆int,如果用long long会超时。如:FZU 1021 飞船赛

你可能感兴趣的:(ACM模板)