仙人掌&圓方樹學習筆記 1、仙人掌 圓方樹用來干啥? ——處理仙人掌的問題。 仙人掌是啥? (圖片來自於\(BZOJ1023\)) ——也就是任意一條邊只會出現在一個環里面。 當然,如果你的圖片想看起來舒服一點,也可以把圖片變成這樣子 (圖片來源於網絡 ...
BZOJ 最短路 仙人掌,圓方樹 題面 BZOJ 求仙人掌上兩點間的最短路 題解 終於要構建圓方樹啦 首先構建出圓方樹,因為是仙人掌,和一般圖可以稍微的不一樣 直接 tarjan 縮點,對於每一個強連通分量構建方點 只有一個點的就不要建了 圓方邊的權值定義為到 dfs Tarjan 不就是搞了一棵 dfs 樹出來嗎 樹上深度最小的點的最短距離。 為什么會有最短距離 因為它是一個環啊,走兩側的距離 ...
2018-05-27 20:46 1 1270 推薦指數:
仙人掌&圓方樹學習筆記 1、仙人掌 圓方樹用來干啥? ——處理仙人掌的問題。 仙人掌是啥? (圖片來自於\(BZOJ1023\)) ——也就是任意一條邊只會出現在一個環里面。 當然,如果你的圖片想看起來舒服一點,也可以把圖片變成這樣子 (圖片來源於網絡 ...
orzYCB 虛樹 %自為風月馬前卒巨佬% 用於優化一類樹形DP問題。 當狀態轉移只和樹中的某些關鍵點有關的時候,我們把這些點和它們兩兩之間的LCA弄出來,以點的祖孫關系連成一棵新的樹,這就是虛樹。 容易證明,如果關鍵點數量為\(m\),則虛樹點數不超過\(2m\)。 虛樹的構建 dfs原 ...
Description 如果一個無自環無重邊無向連通圖的任意一條邊最多屬於一個簡單環,我們就稱之為仙人掌。所謂簡單環即不經過重復的結點的環。 現在九條可憐手上有一張無自環無重邊的無向連通圖,但是她覺得這張圖中的邊數太少了,所以她想要在圖上連上一些新的邊。同時為了方便的存儲這張無 ...
$+仙人掌 解題報告: 考慮環上的邊,不可能在連邊中再被覆蓋,所以只需要考慮樹邊就好了。 ...
【BZOJ4316】小C的獨立集(仙人掌,動態規划) 題面 BZOJ 題解 除了普通的動態規划以外,這題還可以用仙人掌的做法來做。 這里沒有必要把圓方樹給建立出來 \(Tarjan\)的本質其實就是一個構建\(dfs\)樹的過程 所以我們在\(Tarjan\)的過程中求解就行了 我們設 ...
學習了一下圓方樹。 圓方樹是一種可以處理仙人掌的數據結構,具體見這里:http://immortalco.blog.uoj.ac/blog/1955 簡單來講它是這么做的:用tarjan找環,然后對每個環建立一個新點,然后將環上的邊刪去,並環上的每個點都連到新點上。這樣我們就可以把一個環縮成 ...
【參考】 ★仙人掌相關問題的處理方法(未完待續) ★WC2017-immortalCO Making Graph into Trees 【DFS樹】 仙人掌圖:每條邊至多在一個環上的圖。 仙人掌圖中每個環相當於一個點雙連通分量,那么用Tarjan算法處理dfs樹。 對於樹邊(low[y ...
如果某個無向連通圖的任意一條邊至多只出現在一條簡單回路(simple cycle)里,我們就稱這張圖為仙人圖(cactus)。所謂簡單回路就是指在圖上不重復經過任何一個頂點的回路。 輸入的第一行包括兩個整數n和m(1≤n≤50000以及0≤m≤10000)。其中n代表頂點個數,我們約定圖中的頂點 ...