ACM OJ常见错误以及解决方法

您所在的位置:网站首页 运行错误339什么意思 ACM OJ常见错误以及解决方法

ACM OJ常见错误以及解决方法

2024-07-13 05:15| 来源: 网络整理| 查看: 265

不同 OJ 有不同的错误代码,有些 OJ 没有 PE,SE 啥的,甚至有没有 TLE,RE 的 OJ,具体的要根据 OJ 分析,最好比赛前要测试下错误代码的种类,方便赛时找 bug。

Wrong Answer :答案错误

输出的答案错误,具体问题各不相同,大概有这几种情况

1. 代码哪里写出 bug 了,代码功能与自己想实现的功能相异。

2. 解题逻辑和思路错误。

3. 特殊情况没有处理,比如 0,1,2 和最大值这种边界值没有考虑。

4. 空间开的不够大,造成越界,但越界并没有进行修改,或者修改的数据不是关键数据,导致不触发 RE,但因为访问或者修改的错误的数据,导致输出结果错误。

Runtime Error :运行时错误

你的程序在运行的时候出错了,异常终止了。

1. 越界,想从一些非法的地址空间读取或向其中写入内容。

2. 除 0 或模 0 错误

3. 过多的申请栈内存导致栈溢出,如无限或过多的递归,在 main 函数中申请空间(此项由于不同 OJ 设置可能会有出入,有些 OJ 堆栈内存共享)。

4. 使用 STL 的非法操作,比如从空 stack 中取 top。

Presentation Error :输出格式错误

答案正确但没按题目要求输出,注意读题,或者行末空格,和最后一行输出的换行。

Time Limit Exceeded :时间超限

程序运行时间太长了,超过了对应题目的时间限制。

1. 代码无限循环。

2. 算法复杂度过大。

Output Limit Exceeded:输出超限

程序输出了太多的内容了,超过了 OJ 的限制。

Memory Limit Exceeded:内存超限

程序运行所用的内存太多了,超过了对应题目的限制。

1. 内存空间申请过大。

2. 在有些 oj(cf,洛谷)中,堆栈共享内存空间,这时当你出现过多的递归这种大量的栈内存使用的时候,不会栈溢出导致 RE,而是内存超限导致 MLE。

Compile Error :编译错误

程序编译错误

1. 编译器选取错误,使用高版本的特性,却使用低版本编译器。

2. 头文件问题,使用 window 系统的头文件,但 OJ 却是 linux 系统,少添加了头文件。

Floating Point Error:除零错误

有些 OJ 除零错误有专门的错误代码

Segmentation Fault:段错误

类似 RE。

1. 缓冲区溢出,也就是你访问 了非法内存,,或者在 C/C++ 中访问了空指针等等。

2. 堆栈溢出。

Restricted Function:受限函数

调用了不该调用的函数,如 fork (),execv (),socket () 等



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3