常見錯誤總結

2021-10-25 05:48:23 字數 1662 閱讀 1807

博主今天因為debug

\text

debug

的事被教訓罵了所以記錄一下在debug

\text

debug

的過程中都發現了什麼智障錯誤

取mod

\text

mod的時候注意輸入也可能超出範圍,最好在輸入的時候取一下模。

對於某些sb題請在讀入優化那個函式裡也取模(noip2014解方程)

取模最好用函式操作進行+−∗

/+-*/

+−∗/

之類的,要不然**又長又容易寫暈還容易取漏

過樣例了不要太激動,養成造極限資料手玩的好習慣

對於n

nn大小不一樣的陣列注意n

<

<1,

n∗

nn<<1,n*n

n<

<1,

n∗n之類的開陣列大小,避免rere

re如果對於乙個資料有不同的操作請注意資料型別是否相同,不要int

intin

t去做lon

glon

glong\ long

longlo

ng的運算對於一些可能會比較難寫的方法先在紙上寫出思路再寫**,如果對於乙個相同演算法有不同實現請一定選擇簡單的那個實現

看到複雜度為o(n

)o(n)

o(n)

的可以考慮猜結論或者單調佇列轉移,用單調佇列的時候至少要看看決策是不是單調的(就算沒有嚴謹證明也得想清楚,thi

nktw

ice,

code

once

think\ twice,code\ once

thinkt

wice

,cod

eonc

e),單調佇列沒調出來的時候考慮隊頭隊尾的性質,想想佇列此時能不能彈空

對於**要寫很久(比如高精),但是分很少的情況,就先不要寫了,先把其他更好拿的分拿到再寫這些

一定要考慮清楚對於乙個矩陣它哪個是行哪個是列(暴力寫掛的悲慘命運)

多組資料記得清空

遇到題意不清楚的情況先把所有情況都寫了

遇到d pdp

dp先不要考慮維數,大膽假設一下

d ij

kstr

adijkstra

dijkst

ra標記是否訪問過是在佇列裡取隊頭時標記,不是一開始進隊的時候就標記,它是看隊頭全域性最小值有沒有更新其他值

要取m in

ma

xmin\ max

minmax

的時候注意初值,可能會初值賦的不好導致錯誤

最小生成樹新增的邊是無向邊也不要add

addad

d兩次,會爆零

m em

se

tmemset

memset

不能對dou

bl

edouble

double

型別賦最大值(最好不要,wawa

wa過),建議直接for

forfo

r判斷單調佇列當前元素是否還符合條件時要根據題目定義(比如當前下標已經不滿足題目區間了),不能簡單用l

rl\ r

lr判斷

常見錯誤總結

1.呼叫函式中使用的變數名與主函式中一致,沒有影響 include int isfullsquare int n int main 2.浮點數在賦值和計算中忘記加.0 3.忘記將布林變數 計數器變數 累加變數初始化為0 忘記將累乘變數初始化為1 注意初始化位置在迴圈內外的差別,對於多組資料的輸入應將...

常見錯誤總結

線段樹合併常見錯誤點。合併之前 子樹線段樹是有效的 如果在merge處不新建節點那麼 兒子線段樹是無效的 這點一定要注意!因為這個時候兒子線段樹可能已經被修改了。那麼其實就有做法了在merge的時候新建節點不過這樣空間消耗最壞是nlogn 2的接受不了的話那麼就在遞迴和並的時候查詢兒子操作 不要放在...

常見錯誤總結

作為一名oier,無論是蒟蒻還是神犇都難免會犯一些低階錯誤,而這些低階錯誤在考試時就有可能會讓你從ac變成爆零。所以在考試時應當避免這類錯誤。在這裡給大家總結一些常見的低階錯誤來與大家共勉。一 檔案類 1 許多oier習慣在寫 前先寫上檔案操作然後注釋掉,寫完之後就經常會忘記刪除注釋。只是考場上常見...