1. 程式人生 > >記錄一些OI中遇到的低階/玄學錯誤

記錄一些OI中遇到的低階/玄學錯誤

1.在POJ2976的小數輸出中,遇到POJ上C++與G++的輸出不同,記住以後在POJ上要用%f輸出小數,或者直接用C++編譯器.

2.在BZOJ2200的最短路無解判定中,遇到了負權最短路無解的點的距離小於INF的情況,這個時候要判定比INF/2小.

3.在tarjan演算法求割邊的已經過判定中,忽略了tarjan演算法重邊的情況,判定一條邊是否要遍歷時,判斷了這條邊是否是返回父親的,其實應該判定是否經過這條邊.

4.在CH2601的雙端佇列BFS更新中,忽略了一個狀態可能被更新多次的問題.

5.在BZOJ3083的倍增向上爬的過程中,由於貪圖方便將i>=0寫成了i,導致調了很久...

6.在SPOJ GSS7這道題的鏈修改過程中,由於忽略了可以改成0的情況,從而直接使用一個變數當tag,導致WA了很久都不知道原因.

7.在SPOJ GSS8這道題的楊輝三角預處理組合數中,由於忘了呼叫start預處理函式,導致組合數陣列都為0,調了兩天.

8.在國家集訓隊 Tree II這道題的判斷乘法標記中,忽略了乘法標記等於0的情況,將mul^1寫成了mul>1,導致WA.

9.在day2018.10.21的一場模擬賽中,我寫了三個5000^2的long long陣列而MLE了,一般int只能開最多5000^2的陣列,long long只能開最多4000^2的陣列.

10.在BZOJ1912求樹的直徑時,沒有注意到有負權邊的樹的直徑不能使用兩遍bfs求直徑而導致WA,第二次求樹的直徑應該使用樹上DP求樹的直徑.

11.在NOIP2012疫情控制的貪心判定中,沒有注意到無法到根再返回且子樹已經被覆蓋的軍隊不應該留在原處,導致WA調了2天.