ACM走過的坑和一些細節

2021-08-19 10:10:24 字數 990 閱讀 6219

1.一道簡單計算幾何,區域性變數與全域性變數同名,然後忘記在函式內宣告區域性變數,然後編譯通過了。。

2.省賽選拔時,一道二分+bfs走迷宮的題,漏了起點和終點重合的情況,要注意一開始入隊的狀態是否是結束狀態。。

3.線段樹的一道題,len陣列記錄根節點所代表線段覆蓋的長度,有小數,改來改去,根本沒注意到len的型別,一直用int。。

4.樹上結構修改時,如trie樹,盡量修改連線關係,不要複製點,容易有坑。。

5.atcoder上的一道題,簡單的組合題,本來應該大於就continue,寫成了大於等於continue,調了好久

6.牛客網上的一道題,狀態壓縮,無向圖簡單環的個數,最後一步除以二,沒有求逆元,調了好久,坑

7.大一補選賽的zoj月賽的一道題,樹狀陣列維護逆序對,一開始ans的最大值設成了inf,int的最大值,應該設成ll_inf,調了很久,坑

8.計蒜之道複賽的一道題,階乘範圍是1e5,初始化範圍一直都是10000,坑

9.數字dp,題目需要取模時,solve®-solve(l-1)有可能為負數,需要(ans+mod)%mod

10.一道ural的題目,用了multiset,runtime_error(access violation)(拍不出錯,發現一組資料偶爾會炸掉),最後終於發現erase(it), insert(*it),erase迭代器後,迭代器就不能用了,應該insert(x),以後要注意迭代器是否會失效

11.小公尺oj上的一道題,拓撲排序,用佇列的方法一直wa,但用dfs的方法就能過,最後發現會有重邊,導致度數-1時有問題,刪邊時要注意重邊,度數要減去重邊的條數,坑

12.一道樹上dp,樹上資源分配問題,子樹合併到父節點的題目,寫了好久dp狀態轉移,最後發現狀態有重疊,下次定義狀態時要特別注意

細節:上公升序列:lower_bound 返回第乙個大於等於x的位置,upper_bound 返回第乙個大於x的位置

下降序列:lower_bound 返回第乙個小於等於x的位置,upper_bound 返回第乙個小於x的位置,要定義比較函式

C 呼叫C dll一些走過坑的筆記

筆記1 c dll的call convention 是cdecl 弄了乙個callback,供外部呼叫。c 方面 在debug模式下,委託不加unmanagedfunctionpointer是正常的,在release模式下不加unmanagedfunctionpointer不行,加上unmanage...

C 的一些細節

1.c 中,將負數賦值給unsigned是完全合法的。例如,將 1賦值給unsigned char,那麼結果是255.2.c 中,double的精度和計算速度都要超過float,long double則需要承擔額外的執行代價。3.std ou t hi d endl 等價於std out hi 4....

迴圈的一些細節

1 迴圈執行次數相同,大迴圈放在外面還是小迴圈放在外層效率高呢?int end1 10 int end2 100 int end3 1000000 long starttime system.nanotime 開始時間 for int i 1 i end3 i long endtime system...