提交程序的时候若是因为算法错/没有考虑到边界条件/时间复杂度太高等原因不通过还算心服口服,可是如果是因为以下原因那就冤死了,都一起来总结这些原因,以避免下次再犯: 1、读数据错误 明明在自己这里读的好好的,可是提交了却是tle。如果题目明显不可能超时的话,那么最大的原因就是多读或者少读了回车,导致没有读到数据结束标志,那就肯定会tle了。 2、编译器不同 FLOYED队血的教训。永远不要说我在某某某处运行是对的。这个问题通常出现在网络赛和在线提交系统。当你的编译器以及操作环境和评委的不同的时候,写程序一定要小心,不要用不规范但是你用习惯了的语句,也不要用$来定义常量。 3、数据定义 如果你认为数据范围定为31就够了的话,写成35你又会损失什么呢?如果你怀疑用long long才能过的话,为什么又一定要用int呢。在条件允许的范围内,小小的可能的浪费会节约你的调试时间和思考时间。 4、未赋初值 一个变量,不管你多么有把握,使用之前,一定要赋初值。就算你觉得不可能出现问题,保险起见,加一条赋值语句,这不会把你程序的复杂度提高一个数量级的。 5、丢三落四 if的情况写了,却忘记写else,这种错误属于低级错误。 6、数字格式不符合要求 是要你四舍五入,还是舍掉尾数,还是统一进位。ceiling,floor,round一定要区别好。 7、超时 不写#include<stdio.h>有可能造成超时。 8、内存错 这个其实不会wa,直接本机运行就有问题了。例如用队列或者堆栈,光顾pop,忘记检查人家是否已经empty了。
|