oj上的测试点信息

  1. Accepted                            通过!(AC)
  2. Wrong Answer                    答案错。(WA)
  3. Runtime Error                          程序运行出错,意外终止等。(RE)
  4. Time Limit Exceeded               超时。程序没在规定时间内出答案。(TLE)
  5. Presentation Error                    格式错。程序没按规定的格式输出答案。(PE)
  6. Memory Limit Exceeded          超内存。程序没在规定空间内出答案。(MLE)
  7. Compile Error                            编译错。程序编译不过。(CE)

 

 

【黑盒测试】

        算法竞赛一般采取黑盒测试:事先准备好一些测试用例,然后用它们测试选手程序,根据运行结果评分。除了找不到程序(如程序名没有按照比赛规定取,或是放错位置)编译错等连程序都没能运行的错误之外,一些典型的错误类型如下:

        在一些比较严格的比赛中,输出格式错被看成是答案错,而在另外一些比赛中, 则会把二者区分开。在运行时,除了程序自身异常退出(例如,除0、 栈溢出、非法访问内存、断言为假、main函数返回非0值)外,还可能是因为超过了评测系统的资源约束(如内存限制、最大输出限制)而被强制中止执行。有的评测系统会把这些情况和一般的运行错误区分开,但在多数情况下会统一归到 “运行错”中。
        需要注意的是,超时不一定是因为程序效率太低,也可能是其他原因造成的。例如,比赛规定程序应从文件读入数据,但所写程序却正在等待键盘输入。其他原因包括:特殊数据导致程序进入死循环、程序实际上已经崩溃却没异常退出等。
        如果上述错误都没有,那么恭喜你,  你的程序通过了测试。在ACM/ICPC中,这意味着你的程序被裁判接受(accepted, AC),而在分测试点的比赛中,这意味着你拿到了该测试点的分数。
        需要注意的是,一些比赛的测试点可以给出 “部分分”——如答案 正确但不够优,或者题目中有两个任务,选手只成功完成了一个任务等。不管怎样、 得分的前提是不超时、没有运行错。只有这样,程序输出才会参与评分。
 

总结:

一:WA 错误答案,有数据未通过

二:TLE 超时,时间超过了题目所限制的时间,一般是时间复杂度在一亿以内,基本没啥问题,一亿不好说,但十几亿更多就一定不行了;此时需要优化自己的算法,降低时间复杂度

三:PE 提交格式错误,换个编译器,或者是看代码中输出中是否与答案差个空格 逗号 换行啥的

四:提交失败 这个与本网站的服务器状态有关,比如POJ 的网站崩了,挂在POJ上的一些OJ题目都不能提交

五:内存爆了,这个属于题目数据过大,导致运行内存超出,比较好的办法及常用的办法是:想办法降低对内存的占用,如优化一些不必要的过程,或者是经常的边输入边输出(时常会用到)

六:runtime error 运行时发生错误,这个问题往往就是程序跑到一半不能跑了,可能发生了数组越界,一般是这个,这时候只需要将数组开大一点就好了,数组一般可以开到1e9,

 

posted @ 2018-07-29 08:35  底层码农  阅读(1870)  评论(0编辑  收藏  举报