Mistakes(Updating)
1.當調試時發現無法正常調用函數時,檢查是否發生爆棧
? ?對于每個棧僅有4MB的空間,開int只能開大約5*10^5。
? ?大數組一定要開全局變量
?
2.當long long=int*int時會爆int,一定要注意
? 在進行long long計算時,最好全部開成long long ,或加上1LL
?
3.vector.size()的類型為unsigned int
? 當用其做減法時一定要注意邊界條件,防止差小于0溢出
?
4.在求特殊最值時,一定要特殊定制初始化值,不能套用平常初始值,防止初始值不夠。
? ?Ex:1<<30 > 1e9
?
5、由于返回類型為int和bool的默認返回值是1,因此有些時候要注意在函數結束前return false.
?
6、注意計算幾何的精度問題,要比答案多算2到3位,否則可能WA
? ? ? (Codeforces 8D)
?
7、注意模數不能為零
? ? ? 當p mod q時要對q=0時特殊處理
? ? ? (Codeforces #480 A)
?
8、注意答案的大小寫
(BZOJ 2964)
?
9、scanf("%c)和getchar()有相同的問題:會讀入\n等緩沖區的遺留字符
盡可能的用char數組和scanf("%s")的組合
(BZOJ 2819)
?
10、在寫Trie樹時,CNT的初始化要根據根節點數目而定
如果有n棵樹,則CNT要初始化為n+1
?
11、在線性基求XOR最大值時
如果res初始值不為0,不能對線性基中的1直接添加,而要使用MAX逐個判斷
?
12、如果在讀入long long 時使用IO優化
? ? ? ?read()中的INT要改為LONG LONG!!!
?
13、注意x組成y至少要多少個這類問題的書寫:
y=y/x+(y%x>0)? ?||? ? y=(y+x-1)/x? (不要漏>0)
?
14、有多個括號要留心每個括號的位置啊,多看幾遍
while((f=dfs(S,T,INF))>0)這里的>0一開始放到第2個括號里了,結果f每次就都是0或1了……囧,調了1h
?
15、像網絡流這樣執行過一邊就會對原數組產生影響的模塊,
? ? ? ? ?執行過一次后想調試/再次調用時,不能再執行一遍
?
16、由于模板中大部分數據都是int,如果有long long時要特別注意修改原模板中的int
? ? ? ? 慘案:
void add_edge(int from,int to,ll cap)?
17、如果題目中涉及連續相乘且不取模,注意是否需要高精度
?
18、Big Integer模板類中牢記存儲順序是從低位到高位的
重載>時要從后往前判斷
?
19、能用int計算不用long long,在32位機下,int比long long 快幾倍
?
20、求SG函數時,初始值最好都設為0,防止異或-1這種情況
如果使用$vis$數組也一定要第一時間更新,防止陷入死循環
?
21、對變量初始化的先后順序要注意
EX:cur=0要在st[cur][1]之前初始化
?
22、哈希表最好用鏈式前向星實現
$vector.clear()$太慢了!
?
23、左移、右移比==優先級高,但位與、位或比==優先級低
?
24、樹狀數組$Query$中的$ret$記得初始化!!!
?
25、如果$dp$時一開始狀態無法填滿,選擇 一開始特殊處理 或 從0開始循環 !
?
26、如果數組下標中有運算,查看是否可能溢出,要開大數組!
?
27、鏈式前向星實現的網絡流算法的要點!
(1)$edge$數組的下標一定要從0開始,這樣才能使得$edge[i]$與$edge[i^1]$互為反邊
(2)由于上一條原則,$head$數組一定要初始化為-1,而不是-1與0皆可
?
28、突然發現自己以前點分治找重心都是假的……
然而復雜度被證明是正確的:傳送門
不過最好在遞歸時$vsum=vsum-sz[x](e[i].to=f[x])$
?
29、$map,set$存結構體時要重載小于號
注意重載要寫全(特判前面關鍵字相等的情況),否則前面相等時會有意外情況(不再插入)
?
30、OJ上交題前一定要檢查是否刪掉freopen!!!
?
31、哈希的值域一定要從1開始!!!有0明顯會出錯
(特別是字符串哈希)
?
32、注意三元運算符的優先級!!最好都加上括號!
?
33、不能只考慮是否爆$int$,對$1e18$的$longlong$運算時也要注意是否爆$longlong$!
?
34、注意多測且一邊讀入一邊處理時要把數據讀完,不能break!!!
?
35、線段樹注意最后一層的更新,不能先$return$!
?
36、線段樹詢問時要保證詢問區間和$[1,n]$有交!否則陷入死循環
轉載于:https://www.cnblogs.com/newera/p/7896937.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Mistakes(Updating)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5--1.15 style元素与
- 下一篇: 20155335 俞昆 第十周作业