ACMOJ常见错误以及解决⽅法
不同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,越界访问vector。
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系统,少添加了头⽂件。
3.语法错误
Floating Point Error:除零错误
有些OJ除零错误有专门的错误代码
编译器错误Segmentation Fault:段错误
类似RE。
1.缓冲区溢出,也就是你访问了⾮法内存,,或者在C/C++中访问了空指针等等。
2.堆栈溢出。
Restricted Function:受限函数
调⽤了不该调⽤的函数,如fork(),execv(),socket()等
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论