可能有些紊乱,但句句都是血的教训。
1.循环顺序出错,中间累加和错误。
2.数组定义小了,题目(迷宫之类的)给的n,m并不是实际真正储存的大小。
3.if语句判断条件错误或者根本没判断,这是至关重要的一点。
4.设边界的时候一定要注意,画个草图出个简单数据模拟一下,少一多一都是无尽的懊悔。
5.<还是<=,整除还是小数,诸多判断的细节问题,一定要把题目抠透,每个条件都罗列出来,保证不重不漏。
6.freopen.
7.关心数据范围,很多时候范围会给你正解的类型,让你找到正确的方向,而且空间时间也得注意
8.让自己保持轻松的心情做题,不急不慢,发挥自己的最高水准,不要总是所谓的发挥失常,那是功夫没到家的表现。
9.拿到题,思考它的类型,该不该用学过的算法,或者是数学方法,亦或是枚举,正解往往并不超出自己所学,只是自己没有真正的学透罢了,掌握思路与方法是AC的关键,至于实现代码的能力,就要靠刷题来堆砌了。
10.不要去刷那些看一眼就会的题,没用的,要做就做有意义的事情,一定要有些思维难度,才能起到锻炼的效果
11.long long是个巨坑啊,有时候数据特猥琐,表面上看起来不会炸int,但是中间的运算过程也可能要炸,一定要注意。输入输出的时候windows系统是"%I64d",(大写的i)但评测环境Linux系统是"%lld",(小写的l),一般如果要交上去测用"%lld",不要弄错了。
12.0不能作除数,运算除法的时候一定要保证分母变量不为0,想方法规避这个问题,有时候这问题很致命。
13.尽量让你的程序通俗易懂,一些细节思考清楚,需不需要特殊处理,有时候程序的算法实际上可以避免一些看起来很特殊的数据,让每个if都有价值,如果你的程序需要特殊处理的太多,那么一定不是好的程序,一定要理清程序到每个阶段应该干什么事,到哪里要处理,怎样处理最简单,最正确,思考完备再动手。
14.高精度运算在位数较多时容易超时,可以考虑压位处理(详情请见高精度开平方)
(持续连载中......)