1.左偏樹merge函式當左兒子的dis小於右兒子的dis時應該swap(lson[x] , rson[x]),寫成swap(dis[lson[x]] , dis[rson[x]])。
1.set中的begin()和end()是不一樣的,begin()有值而end()為空。
1.splay的時候注意哨兵節點的存在,所以在進行區間操作是把哨兵節點的位置留出來
2.非旋轉treap中的split,return的pair並不是撕裂id的make_pair(id,id+1),而是make_pair(id,root)。
1.kd-tree中的查詢近鄰點對的時候query函式一定要寫else,不然會t。是if(dl
1.lct
中update
中寫成了
while(!isroot(p)) update(f[p])
,應該是
if(!isroot(p)) update(f[p])
。1.並查集三目運算子應寫成 fa[x]==x ? x : (fa[x]=find(fa[x])),寫成了 fa[x]==x ? x : (fa[x] == find(fa[x]))。
1.在樹剖序上建立線段樹的時候,在退出時一定要記得:當前的l不一定是原來樹上結點的點權下標。
1.主席樹在區間查詢的時候傳的變數不僅僅是x-1,y,而且是root[x-1]和root[y]!
1.樹的給father建邊的方式,迴圈從1迴圈到n-1,加邊應該是add(fa,i+1,value),寫成add(fa,i,value)。
1.在求樹的直徑的時候如果用的是維護乙個點的最長鏈和次長鏈,那麼不一定只在根節點更新答案,每乙個點都會更新答案。
1.在樹剖序上建立線段樹的時候,在退出時一定要記得:當前的l不一定是原來樹上結點的點權下標。
1.堆優化dij中,如果採用懶刪除的方法是不可以用vis記錄的!
1.單向邊等價於雙向邊時雖然兩條單向邊的權值相等,但是開鏈式前向星val陣列仍然要開成val[n<<1],而不是val[n]。
1.期望的平方不等於平方的期望...
1.博弈論中,求mex的vis陣列是不可以開全域性變數的!!!
1.斜率優化的時候注意在判斷斜率的時候用交叉相乘的辦法,盡量避免double的相除時間和精度問題。而且極其之慢,至少兩倍臥槽啊... ...
1.狀壓+記憶化暴蒐時記得要考慮all狀態的時候是否一定合法,如果不合法需要再暴搜退出的時候特判。
1.網路流的dinic模板中的mdl=dinic(to[i],min(val[i],tmp))中間的是tmp而不是fl。
1.往下遞迴的時候,運算元組並不是從1開始
1.考試時define 了乙個1000100 ,然後before陣列開的是before[n/1000],導致實際上before開的是before[1000],使得before[1000]這個數沒有定義,而且這個陣列的用途數預處理階乘,直接gg
2.比如說題目中有2問,或者是輸出多個資料的時候,記得注意輸出資料之間的格式。應該是空格還是\n還是tab,不然會pe啊。(模擬賽t2爆蛋)
3.將詢問離線了、排序了之後記得按照詢問的順序排回來,不要按照離線後的順序直接輸出
不小心裝了個瑞星
好久沒有使用國產的安全軟體,感覺這塊比較亂,幾家打仗似的,把些功能弄得多又雜亂,還自作聰明的做許多事情。安裝時候啥提示也沒有,感覺不對勁。在程序中將安裝程序中止了。到控制面板中解除安裝,提示安裝不完整,要求公升級。好吧,公升級完成再解除安裝。看看解除安裝過程 第乙個介面,還挺清爽的,本以為一點 開始...
git 不小心刪除本地檔案恢復
有時候不小心在git中rm了檔案。怎麼恢復呢?別急,咱們一步步來。首先git status一把,看看此時工作區的狀態 static files git status on branch master nothing to commit working directory clean 可見此時沒有任何...
ubuntu不小心忘記開機密碼
進入advanced option for ubuntu介面,選取root drop to root shell prompt 下面要輸入root使用者密碼,我也不清楚我輸的啥,稀里糊塗就進去了,應該是重設了下root的密碼,然後輸的就是重設的密碼。這時候出現了root 這時就可以輸入指令了,不需要...