不斷更新中 各種錯誤 總結

2022-02-15 13:10:37 字數 1789 閱讀 7650

無論感覺多穩都要對拍對拍對拍!!!

不要爆long long 不要爆long long 不要爆long long 不要爆long long 不要爆long long 不要爆long long 不要爆long long

二維st表注意邊界(見模板)

連續lcm不可模

兩個指標注意只有左指標對應值不變時,右指標需要復位

用while迴圈時有範圍的一定標上範圍

陣列或變數名必須區分清楚

在做有單調性的題目時一定注意是哪個量單調,不要找錯了

分解質因數時一定注意分解到最後如果不是1也要加在答案裡

拓撲排序一定要注意度數相同可能有多個點,注意考慮多起點的情況,一般轉化為1維序列操作(注意可能有多個序列,不可隨意更換)

永遠不要把陣列大小卡的自認為太準確,能開就往大開

最後一定要檢查陣列大小是否夠用

審的題意和考題題意不一樣 qwq

最大值設的不夠大 (答案超過intqaq)

dp陣列沒有初始化

dp導致陣列越界re

直接輸出dp中的值(其實要利用dp值判斷最終答案)

樹鏈剖分查詢時迴圈內比較dep[top[x]]和dep[top[y]]迴圈外dep[x]和dep[y]

樹鏈剖分初始化cnt tot head son!!!

freopen!!!

stl不一定好用好調orz

時刻小心爆int!!

用stl中的size()時千萬不要把它-1,會直接re(我也不明白為什麼)

tarjan縮點更新low[u]時注意一定是沒走過或在棧中!!!

數列上的操作一定想想用資料結構優化!!

階乘有模數的時候可以確定後面是0

公式題一定注意手動嘗試化簡一下

打表找規律優先答案

1e9的範圍無非公式logn或者數字dp

看到資料範圍為幾十時首先想折半搜尋

雙雜湊常數較大,一般用單雜湊即可

硬幣問題當前局面的sg值為所有背面朝上的硬幣單個sg值的異或和

當我們要快速得到乙個數與之前某個數差的二進位制表示第i位為1的有多少個,可以統計前幾位的值考慮如何借位出現1具體見這裡

當知道一半狀態就能推出全部狀態的dp時可以知記錄一半的狀態,或用下標記一種狀態,權值記另一種狀態,使dp可以忽略一半的情況

正難則反,尤其是在統計的時候,可以想想目標集合的補集是否好求,嘗試求補集

最小(大)生成樹 求解保證某 兩個點連通性 和 最小邊權最大(類似)的問題

最短路可以解決 通過一些步驟(互不干擾且有互相聯絡)從起點到終點,找到最小代價的題 只需想辦法構圖

\(\sum_^\frac\)

博弈論可以嘗試用dp轉移必勝策略(當前狀態是否必勝)

dp中若用到一段dp值的和並且每次只修該段的前部和後部,那麼我們可以利用sum加速類似單調佇列?

並查集樹(按秩合併):深度為\(log_2 n\) 可以有邊權 可去掉滿足連通性的重邊

卡常(感覺?):void函式快,int比long long快,for迴圈比while快

求多個高次二項式之和:二項式定理。帶修改:全域性變數

組合數可以o(1)移動,可用莫隊

對於乙個集合如果元素種類確定可以按種類增加按權值減少

判斷乙個點是否在多邊形內可以將這個點往外連一條射線看與多邊形相交幾次

二維dp且有狀態是全域性的時可以讓這一行第乙個值由上一行最後一值轉移而來

數軸一些區間覆蓋一些點,如何找到和前乙個點多出的區間數以及相同的區間數:(不能用遞推全域性變數:無法做到與事實統一)

for(int i=1;i<=n;i++)

不斷更新中 各種錯誤 總結

永遠不要把陣列大小卡的自認為太準確,能開就往大開 審的題意和考題題意不一樣 qwq 最大值設的不夠大 答案超過intqaq dp陣列沒有初始化 dp導致陣列越界re 直接輸出dp中的值 其實要利用dp值判斷最終答案 最小 大 生成樹 求解保證某 兩個點連通性 和 最小邊權最大 類似 的問題 最短路可...

錯誤集 自己總結,不斷更新中

1 在linux中執行rman命令後沒有反應是怎麼回事 path路徑設定有問題,將 oracle home bin路徑放在path的最前面 因為linux中正巧也有rman這個命令 2 ora 01152錯誤的問題 問題原因 控制檔案與資料檔案或日誌檔案不匹配 可能出現情形 a 你建立了乙個表空間或...

VC 編譯錯誤總結(不斷更新)

1.win32應用 general error c1010070 failed to load and parse the manifest.0v 原始檔沒有載入到工程中 2.win32應用 error c2440 無法從 const char 8 轉換為 lpcwstr 在非mfc下 使用cstr...