求\(a^b % p\)時,a要記得先%p
乘法之類的要注意會不會爆掉
開始時要n個點,後面又多加入m個點,空間要開的是n+m
沒有間隔的運算要注意同乙個變數好不好出現
例如:a[++num] = b[num];(×) ······ a[num + 1] = b[num], ++num;(√)
用a ^ b有時可以當bool判斷a是否不等於b,但是要注意a ^ b可能會大於1,有時要a != b,不然計算或者當陣列下標時會出問題
例如:int f[2]; f[a ^ b] = x;(×) ······ f[a != b] = x;(√)
scanf("%d", &n)中&不能省(長期打快讀的後果)
輸入輸出要記得考慮會不會爆int,會不會爆longlong,以及正負的問題,快讀快輸要記得稍作修改
清空整棵子樹資訊時,要先清空兒子子樹的資訊,再清空兒子
例如:lson[x] = rson[x] = 0, clear(lson[x]), clear(rson[x]);(×) ······ clear(lson[x]), clear(rson[x]), lson[x] = rson[x] = 0;(√)
主席樹本身具有二分的性質,屢次二分加主席樹導致多乙個log(我太菜了)
函式要注意有沒有返回值(return x;)
初始化資料結構時,如果懶標記下傳條件不是為0,那麼要初始化
例如:build(int id) query(int id)(×) ······ build(int id) query(int id)(√)
用到&傳遞函式時需要開變數
注意「大」、「小」,「多」、「少」這些關鍵字眼不要看反了
當許久查不出錯誤來,但是就是沒過時,可以檢查下區域性變數是否和它上一層變數或是全域性變數重名了
線段樹記憶體要開大於等於n的二次冪*2
初始時有n個節點,你新建節點時要記得設記錄節點個數的變數num初始值為n
2-sat的陣列往往要開2倍
給網格黑白染色時用i^j&1,\((1,1)\)是\(0\),不是\(1\)
字串有時要寫成\(s+1\),不要忘了
用到字元,轉成數字,用時要減小,如小寫字母,存時就用\(c-97\)(\(c\)是乙個小寫字母)
很多括號時,要注意括號有沒有括錯,特別是有位運算參與的時候
開含\(log\)的記憶體時,最好多開乙個,以防\(re\)
實數型轉整型會向下取整,要注意區分四捨五入和保留到整數
手動開大棧空間:-wl,--stack=536870912
python程式設計時的易錯點
if後面的判斷不需要用括號括起來 if else 後面要以英文冒號結尾 一行語句不用以引號結尾 python中不用大括號來包裹和區分 塊而是用縮排!input命令中。使用者輸入的東西都是按字串來儲存的,即使輸入的是數字,也會被儲存成字串格式 python自增 自減運算子。i i 類似的元素啊 使用i...
面試易錯點
一 char str1 abc char str2 abc char str3 abc char str4 abc str1和str2是不相同的,str3和 str4是相同的,str1和str2是儲存在堆上,str3和 str4在常量區,這兩個指標指向的是同一位址 編譯器認為p1指向的 abc 和p...
總結 易錯點
題目要求是 結尾,我使用了str 1 str 2 single line containing only marks the end of a test case.題目給的是 f1 1 f2 2 fn fn 1 fn 2 n 3 我卻從f0開始推,並且迴圈跟著從0開始了 題目可能會出現一道腦筋急轉彎...