考前總結小本本

2022-05-09 01:30:09 字數 1512 閱讀 6910

學了兩年oi,記一下容易犯錯和忘記的地方:

1.資料特別大或者特別小都可以考慮預處理。(特別是多組資料,資料很多的情況)

2.注意不要把兩個迴圈變數套一塊(很容易忘記)

3.注意不要開錯變數的型別

4.區域性變數和全域性變數不要一起開,同時出現並同時使用肯定會錯

5.函式有返回1,但是不要忘記其他情況返回0

6.有些問題要轉換成判定性問題,經常用二分

7.if之後的其他情況不要想當然就else不加if,有可能有漏掉的情況

8.區域性變數必須設定初始值,尤其是longlong型別

9.十萬以上數字相乘要記得開longlong型別

10.long long型別絕對值要加std::abs()

11.如果寫了鄰接表,要檢查鄰接表是否出錯,不要自以為是正確的就忽略了。

12.tarjan要注意在low[x]==dfn[x]之後出棧的時候要把instack[x]重新賦值為0回去。

13.寫拓撲排序的時候,要注意用的是棧而不是佇列。

14.graham凸包演算法用的也是棧

15.注意線段樹的區間翻轉或者交換標記應該用異或

16.類似迴圈要注意例如(int j=1;j<=n;i++)不能用錯變數

17.函式返回值型別必須注意,不論是開頭定義的還是裡面返回的。

18.如果有浮點數除以浮點數,其中的浮點數是由乙個整數轉換過來,注意這個整數之前除以某個數,這某個數一定得是個浮點數,否則會出現例如ans/=2,tmp=(double)(ans/dui),導致ans是奇數產生的精度誤差。

19.手寫max和手寫min的話,不要想當然沒寫錯,函式的型別有沒有開錯也很重要

20.如果可以特判掉,也要先讀入完,避免多組資料的時候下面會讀到上一組資料

21.半平面交彈出隊尾和隊頭的時候一定要先彈右邊的,這是半平面交坑點,不然會wa

22.要注意乘法的時候有無型別溢位,如果有溢位,一定要記得前面先打「1ll*」轉換成long long

23.由於rand()是偽隨機數,所以如果程式中有呼叫rand(),應該在主程式加入srand((unsigned) (time(null)))

24.rand()的隨機範圍是32767,如果要生成更大的資料,應該要記得做其他處理

25.位運算的時候一定要加括號,因為它們的優先順序十分的爛

26.linux下不要開到關鍵字的變數,windows下編譯會過,但是linux下不會

27.c++連等有坑點,比如x=fa[x]=0;裡面,如果寫成fa[x]=x=0,那麼x會先賦值為0,然後fa[0]會變成0,所以要注意連等的先後順序

28.如果發現打表的資料是遞增的,那麼可以運用差分打表(b[i]=a[i]-a[i-1]),如果是非遞增的,差分打表可能會另檔案大小更大。

29.注意inf的設定,要經過精確計算再設定。

30.實數除法的除數盡量放到最後一起除才會避免精度誤差。

31.帶花樹演算法的時候要記得清空finish,而且bfs的時候判斷是match[u]!=v

32.考試的時候,看題目一定要超過兩遍!不差那點時間,看錯題浪費的時間才多

演算法小本本

目錄思想 提煉碎碎念 stlstringstream kmp位操作 檔案操作 線段樹manacher演算法 圖類題目 模板 數學 20資料結構高分筆記 kmp筆記 模式串 abc degabc f f處與文字串不匹配時,f之前的字串中重合的字首與字尾分別指abc與abc 文字串 abcabcabc ...

拿個小本本記下來

最近全國各地因為疫情的原因都被無情的封印了 吃,喝,睡之餘,飽飽的補充睡眠之後,偶爾也拿起書本或者聽聽音訊 吳軍老師說,碎片化的學習,不是不可以,關鍵在於積累以後,是否能夠應用 如何應用?如果應用不了,那就寫下來,這便是以後的財產,有所感悟,便是積累 想到此,本來是做軟體專案交付的,平時無盡的加班,...

設計記錄江湖仇家的小本本

it江湖亂世紛爭,刀光劍影,各類語言混戰廝打成一片,程式猿的愛恨情仇,實難數盡。為了縷清各俠客的錯綜複雜的關係,匡扶江湖的正義,心繫祖國的安危,特設計出 江湖1.0版通訊錄。此通訊錄全程c語言編寫,相容一切,適合各大俠客使用。為了正義免費使用 以下 include include define na...