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,

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM