AC/WA/运行错误是什么意思?OJ各评测状态解析
常见的OJ提交结果错误原因及解决方案
不少小伙伴在学校或者其它的程序在线评定平台上(Online Judge,以下简称OJ)做题时候,发现自己的程序提交上去后给出了一个自己看不懂的结果(全是英文什么意思啊),本篇文章带大家看一下这些(缩写)英语单词的意义并分析它们产生的原因。
一、恭喜你AC了
AC
AC(Accepted,接受/答案正确)代表您的程序通过了OJ上该题的所有测试数据,通常以绿色表示
二、怎么没有通过?
如果您的程序没有AC,那么其他的所有返回的评定结果都表明这一点,您无法被统计成通过了该题
WA
其中最为常见的一种结果就是WA(Wrong Answer,错误答案),表明您的程序在某一组测试用例中运行产生的结果与设定的答案不匹配
可能是解法不正确(考虑所有情况了吗?输出是不是多了或者小了),也许可能是TLE或者其它错误的一种表示形式。
总而言之,您给出的程序与标准程序产生的结果有偏差,即使您通过了十组测试数据中的九组,有一组测试数据的一行或一个字与测试用例不匹配就会导致WA
通常以红色表示
TLE
TLE(Time Limit Exceed,时间超限),通常是由于您程序在命题人设置的运行时间内没有结束运行而引起的。
出现TLE表明您的程序在运行直到出现了时间超出命题人给出的限制的那一组测试用例之前的测试用例都给出了正确的答案,但却不能说明您的程序在处理出现TLE的那一组数据时是正确的,因为在时间超限后您的程序被强制中止了
尝试优化解法(考虑时间复杂度,降低常数)以及检查是否出现死循环来解决
MLE
MLE(Memory Limit Exceed,空间超限),与TLE类似,是由于您程序在运行时需要的空间大于命题人设定值引起的
尝试减小空间(如减小数组开辟的大小)和压缩空间来解决
RE
RE(Runtime Error,运行错误),有时候也称作段错误(Segmentation Fault)
常见情况是可能在您本地的代码开发环境中运行测试用例时能正常运行并且返回了正确的结果,但是提交在线测评却显示错误
通常是由于内存空间的不正确分配引起的,如检查数组大小是否达到了题目给出的范围来解决(数组开小了),有时候确实会因为OJ上的一些评测参数的设置引起,所以这时候请考虑重构代码
PE
PE(Pattern Error,格式错误),产生于您的程序可能结果正确但输出的格式不符合题目的要求
请检查您是否按题目的要求输出(观察输出用例)
设置正确的占位宽度,正确的换行来解决
某些OJ可能不会忽略最后一个换行符从而导致错误
CE
CE(Complication Error,编译错误),请查看OJ给出的错误提示
通常是由于选择了错误的语言进行提交和在C/C++中没有声明在下方使用的头文件导致
结束
以上就是常见的错误原因及解决方案,最后祝您的每次提交都能AC!
最后送上一个不太正经的表示,仅供娱乐:)
AC:Answer Coarse,粗劣的答案。
WA:Wonderful Answer,好答案。
TLE:Time Limit Enough,时间充裕。
MLE:Memory Limit Enough,内存充裕。
CE:Compile Easily,轻松通过编译。
RE:Run Excellently,完美运行。
UKE:Unbelievably Keep Excellent,难以置信地保持优秀。
OLE:Output Limit Excellently,完美的输出。
PC:Perfect Compile,完美的编译
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)