oj判題WA/RE怎么辦


[轉]POJ WA/RE指南

 
“POJ上頭的題都是數學題”,也不知道是那個家伙胡謅的……但是POJ的要求就是算法通過了也不讓你AC。下面本人就這560題的經驗,淺談一下WA/RE了怎么辦。 

以下內容是扯淡…… 

一、WA/RE了之后不要感到不爽……實際上,有讓你WA的機會是很幸福的,如果在NOIP上我能交題以前有人告訴我“Wrong Answer”……所以說你得感謝ACM給你改正的機會。 

二、WA/RE了之后不要過於自信。實際上“第一次交WA,再交一次就AC”的說法幾乎是胡說八道。WA了一定是你的程序寫錯了。 

三、如果你3小時內還沒改對,休息一會,明天再來吧。 

好,現在我們步入正題。首先就WA的修改方法做下介紹。當然了,樣例數據得先過。 

WA篇: 

一、看看人家的輸入數據。是不是把boy的數據安到girl上了,n的值賦給m了……特別是樣例中這一對數據還是相等的時候……我都不知道有幾次干這樣的傻事了。 

二、還是輸入數據。如果一個測試點里有多組數據,有沒有可能比方說sum = 0的時候結果一定為0,而無論后面的數據是什么?這樣的話你可能會一個continue轉到下一組數據。可是數據流才不會continue,后面沒讀完的數據理所當然的沖到了最前方,你的程序就這樣WA了…… 

三、初始化。你的初始化正確么?邊界條件是0,1,還是kn? 

四、循環變量。for的循環變量如果是k,就看看后邊用的是不是i。 

五、你的智商夠不夠高,是否考慮到所有的問題了?你可以想辦法搞一份AC了的代碼,里面寫什么連看都不看,之后編寫一個“測試數據制造機”,數大,數據多,情況就復雜,就可能出現你沒想到的狀況,拿兩個程序對一下答案就知道了。 

六、一定要看discuss,那里面都是幾年來前輩們的錯誤總結。說不定還有又簡單又厲害的數據供你使用。 

RE篇: 

一、數組是不是開小了?實在不行在Memory Limit允許的前提下開到數據范圍的10倍以上。 

二、除0錯誤。有多少高人在這個地方摔跤,甚至一蹶不振!全面檢查一下 / 和 % 運算符的右邊有沒有可能等於 0。 

三、數組起始位置。數組最好從 0 開始使用。如果定義a[MAX],就千萬不要使用a[MAX]這個值。事實上,這樣一般都引發WA。 

四、死循環的話一般不報TLE,特別是循環中有數組操作的情況。因為這種情況下通常會出現a[-6569]一類的囧物……RE是理所應當的。死循環的話,就看看循環結束的條件是不是正確。 
TLE:
如果數據類型是longlong,用scanf輸入的時候卻用了%d的話,就會TLE(但可以在dev上運行)

CE:
做hdu1233題的時候,一直ce,最后發現#include<algorithm>好像不能和數組名rank同時使用,把數組名改成ran就ac了,可能是algorithm頭文件中包含一個名為rank的數組。

如果有了新發現還會繼續發表。
 轉自http://www.cnblogs.com/shengrang/p/3843483.html


免責聲明!

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



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