[NOIP2017 考前胡寫]一年以來犯的各種無腦錯誤與經驗總結

一些常識

1. double會有精度誤差,選eps 要適中

如果eps 過大顯然會爆精度,如果選得過小會導致一系列神奇的問題。
當時在UOJ做去年NOIP的D2T3的時候被hack點卡精度,於是當時一個頭腦發熱就寫出了
這裏寫圖片描述
於是乎,就發生了美好的事情
這裏寫圖片描述

還有一次是在某校打模擬賽,一道二分的板子題因爲我eps過小就T掉了。。。

2. memset函數並不是O(1)的

RT,它貢獻了我在初學點分的時候的大多數TLE
這裏寫圖片描述
不當時一度以爲我被卡常數了。。。

3. 注意模數以及數據大小

模數爲1e9+7不代表中間過程不會爆int
還有就是數清楚到底有多少個0,別想都不想直接默認109+7
以及109+7 ,108+7 都是素數,但107+7=941×10627


一些非技術性失誤

1. 單詞拼寫

函數名拼錯了還好,編譯的時候會報錯,但文件名要是拼錯了那就真的GG了

2. 記得屏蔽掉調試用語

我親眼見過一個同學的一個能AC的程序,因爲沒有屏蔽掉調試用的puts(“ok”),然後FST。
同樣地,不該屏蔽掉的東西也不能隨便屏蔽。還是在某校的另一場模擬賽,因爲屏蔽掉了freopen然後一個80分的暴力直接掛掉

3. 明確變量的含義

有很長一段時間,樹的題做多了之後再做一般圖論問題,讀圖的那個循環我都會寫成

for(int i=1,u,v;i<n;i++)read(u),read(v),add(u,v);

甚至有的時候Kruskal 也會寫成那樣,然後就各種Debug……

4. 讀入優化的負數與初始化

5. 對內存使用的正確估計

在做某數據結構的網傳板子題的時候,因爲把內存使用的上界估計小了導致數組沒開夠,然後各種RE。。。

6. bfs時候首元素要入隊,取完之後記得pop

前半句導致我一個AC程序無限WA,後半句導致我一個AC程序又T又M


賽場上的相關事項

1. 注意時間分配,在保證有分之前千萬不要死肛某一道題

2. 考完了不要對答案,不要上網交流

3. 不會做題別報復社會

去年有個同學不會做題然後寫了一句

system("shutdown -f");

還好這對Linux並不管用。

最後呢還是預祝大家++rp

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章