仙人掌&圓方樹學習筆記 1、仙人掌 圓方樹用來干啥? ——處理仙人掌的問題。 仙人掌是啥? (圖片來自於\(BZOJ1023\)) ——也就是任意一條邊只會出現在一個環里面。 當然,如果你的圖片想看起來舒服一點,也可以把圖片變成這樣子 (圖片來源於網絡 ...
orzYCB 虛樹 自為風月馬前卒巨佬 用於優化一類樹形DP問題。 當狀態轉移只和樹中的某些關鍵點有關的時候,我們把這些點和它們兩兩之間的LCA弄出來,以點的祖孫關系連成一棵新的樹,這就是虛樹。 容易證明,如果關鍵點數量為 m ,則虛樹點數不超過 m 。 虛樹的構建 dfs原樹,對點進行dfn標號,並將關鍵點按dfn從小到大排序。 搞個棧,棧內的點滿足:都在從棧頂的點到原樹的根的一條鏈上。 現在我 ...
2019-02-02 16:16 3 540 推薦指數:
仙人掌&圓方樹學習筆記 1、仙人掌 圓方樹用來干啥? ——處理仙人掌的問題。 仙人掌是啥? (圖片來自於\(BZOJ1023\)) ——也就是任意一條邊只會出現在一個環里面。 當然,如果你的圖片想看起來舒服一點,也可以把圖片變成這樣子 (圖片來源於網絡 ...
【BZOJ2125】最短路(仙人掌,圓方樹) 題面 BZOJ 求仙人掌上兩點間的最短路 題解 終於要構建圓方樹啦 首先構建出圓方樹,因為是仙人掌,和一般圖可以稍微的不一樣 直接\(tarjan\)縮點,對於每一個強連通分量構建方點(只有一個點的就不要建了) 圓方邊的權值定義為到\(dfs ...
如果某個無向連通圖的任意一條邊至多只出現在一條簡單回路(simple cycle)里,我們就稱這張圖為仙人圖(cactus)。所謂簡單回路就是指在圖上不重復經過任何一個頂點的回路。 輸入的第一行包括兩個整數n和m(1≤n≤50000以及0≤m≤10000)。其中n代表頂點個數,我們約定圖中的頂點 ...
Statement 帶標號仙人掌計數問題.(\(n \le 131071\)) Solution 設\(x\)個點的仙人掌個數的生成函數為\(C(x)\) 對於與根相鄰的塊, 還是仙人掌, 生成函數為\(C(x)\) 包含根的環, 生成函數為\(\sum_{i \ge ...
用途 如果某個無向連通圖的任意一條邊至多只出現在一條簡單回路里,我們就稱這張圖為仙人掌圖。 所謂簡單回路就是指在圖上不重復經過任何一個頂點的回路。 在某些情況下,我們會需要生成仙人掌圖來檢驗代碼的正確性。 隨機連邊的話效率太低,而且生成的圖也可能不合法。 看上去似乎不大好實現,但實際上 ...
【參考】 ★仙人掌相關問題的處理方法(未完待續) ★WC2017-immortalCO Making Graph into Trees 【DFS樹】 仙人掌圖:每條邊至多在一個環上的圖。 仙人掌圖中每個環相當於一個點雙連通分量,那么用Tarjan算法處理dfs樹。 對於樹邊(low[y ...
點構成虛樹的 \(K\) 連通塊個數。其中 \(K\) 連通為當在原樹上距離 \(\leq K\) 就 ...
Description 如果一個無自環無重邊無向連通圖的任意一條邊最多屬於一個簡單環,我們就稱之為仙人掌。所謂簡單環即不經過重復的結點的環。 現在九條可憐手上有一張無自環無重邊的無向連通圖,但是她覺得這張圖中的邊數太少了,所以她想要在圖上連上一些新的邊。同時為了方便的存儲這張無 ...