不同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()等