【BZOJ】4530: [Bjoi2014]大融合
【題意】給定n個點的樹,從無到有加邊,過程中動態詢問當前圖某條邊兩端連通點數的乘積,n<=10^5。
【算法】線段樹合並+並查集 ||LCT(LCT維護子樹信息 LCT維護子樹信息(+啟發式合並))——嗷嗷待補
【題解】關鍵在於詢問邊兩端的連通點數。
將原樹計算dfs序(強制固定原樹形態,方便計算)
設size[x]表示點x所在連通塊的大小,那麽對於邊(u,v),fa[v]=u,有
ans=size[v]*(size[u]-size[v])。
如何實現size的動態計算?
對每個點各自按dfs序維護一棵線段樹表示哪些點在此連通塊,那麽連邊就是線段樹合並,詢問size就是對區間求和。
用並查集維護連通塊,連通塊中的點指向深度最小的點作為連通塊線段樹。
【BZOJ】4530: [Bjoi2014]大融合
相關推薦
【BZOJ】4530: [Bjoi2014]大融合
給定 cnblogs 所在 算法 dfs www htm tle 深度 【題意】給定n個點的樹,從無到有加邊,過程中動態詢問當前圖某條邊兩端連通點數的乘積,n<=10^5。 【算法】線段樹合並+並查集 ||LCT(LCT維護子樹信息 LCT維護子樹信息(+啟發式合並
【刷題】BZOJ 4530 [Bjoi2014]大融合
oot 記錄 聯通 tchar mar solution ever 數量 NPU Description 小強要在N個孤立的星球上建立起一套通信系統。這套通信系統就是連接N個點的一個樹。 這個樹的邊是一條一條添加上去的。在某個時刻,一條邊的負載就是它所在的當前能夠 聯通的樹
BZOJ 4530: [Bjoi2014]大融合
blank ostream root null include com == lin || 二次聯通門 : BZOJ 4530: [Bjoi2014]大融合 由於是權限題。。。。所以放一下題目 /* BZOJ 4530:
bzoj 4530[BJOI2014]大融合 - LCT維護虛樹大小
小強 簡單 HA AS 格式 push hide 需要 char BZOJ4530 [Bjoi2014]大融合 Time Limit: 30 Sec Memory Limit: 512 MB Description 小強要在N個孤立的星球上建立起一套通信系統。這套通信
bzoj 4530 [BJOI2014]大融合 (LCT)
show 記錄 void for char shu 負載 http pan 題目大意:給你一棵樹,樹的邊是一條一條連上去的 洛谷P4219傳送門 LOJ#2230傳送門 在連邊的過程中詢問某條邊的“負載”,即能通過這條邊的所有不同的路徑的數量 LCT動態維護當前節點的子樹大
BZOJ 4530: [Bjoi2014]大融合(lct)
Description 小強要在N個孤立的星球上建立起一套通訊系統。這套通訊系統就是連線N個點的一個樹。 這個樹的邊是一條一條新增上去的。在某個時刻,一條邊的負載就是它所在的當前能夠 聯通的樹上路過它的簡單路徑的數量。 例如,在上圖中,現在一共有了5條邊。其中,(3,8)這條邊的負載是6,因 為有六條簡
bzoj 4530 [Bjoi2014]大融合——LCT維護子樹資訊
題目:https://www.lydsy.com/JudgeOnline/problem.php?id=4530 LCT維護子樹 siz 。設 sm[ ] 表示輕兒子的 siz 和+1(1是自己的siz),siz[ ] 表示 splay 裡 ( 兩個兒子的 siz[ ] ) + sm[ cr ] 。在 ac
【bzoj4530】[Bjoi2014]大融合 並查集+線段樹合併
線段樹合併好神啊,表示我這種傻逼只能想到樹剖O(nlog^2n)做法 先把原樹建出來,每次查詢就等價於計運算元節點的size*(父親節點所在聯通塊的大小-子節點的size) 用並查集找到節點的祖先,維護子樹size 這個東西可以用線段樹合併來做,查詢就是查詢dfs序上的一段
【BZOJ】1827: [Usaco2010 Mar]gather 奶牛大集會
digi 答案 span col fin tchar size 奶牛 esp 【算法】樹型DP 【題解】 兩遍DFS,第一次得到所有節點子樹的路徑和,第二次給出除了該子樹外其它部分的路徑和,時時計算答案。 long long!!! #include<cstdio&
【BZOJ】5120: [2017國家集訓隊測試]無限之環-最小費用流最大流
傳送門:bzoj5120 題解 要求所有接頭相連,實際上就是將邊拆成入度和出度,要求滿流。 將每個點拆成五個點,分別表示上下左右和中心點。按橫縱座標和奇偶進行黑白染色,源點 S
【BZOJ】1433 [ZJOI2009]假期的宿舍 二分圖的最大匹配
題目的意思非常明顯,就是告訴你一些人之間的關係,一些床位可以容納一些人。問在校且不回家的人數加上外來人數是否能被所有床位容納。 這題需要注意每次求二分圖的最大匹配之前的初始化,我就是在這裡WA了好幾次
【BZOJ】3971 [WF2013]Матрёшка
數組 .html ide html cstring str n) div x優化 【算法】區間DP 【題解】 參考寫法:BZOJ 3971 Матрёшка 解題報告 第二個DP可以預處理mex優化到O(nM+n2),不過我懶…… 第一個DP有另一種寫法:不預處理,在一個n
【BZOJ】2049 [Sdoi2008]Cave 洞穴勘測
.com oid pre sdoi2008 print reserve mes tdi down 【算法】Link-Cut Tree 【題解】lct 不是很懂你們會壓常數的>_<! #include<cstdio> #include<alg
【BZOJ】3676 [Apio2014]回文串
esp ret 結點 += lap first trees db4 lld 【算法】回文樹 【題解】建回文數,然後一個回文子串出現的次數就是結點被訪問的次數以及能包含它的結點被訪問的次數。 根據fail樹反向建新樹,那麽答案就是結點所在子樹的權值和(權值就是結點被訪問次數)
【BZOJ】1130 N的階乘的長度 V2(斯特林近似)
n) ges src algo span ace pan nbsp closed 【算法】數學 【題解】斯特林公式: #include<cstdio> #include<algorithm> #include<cmath> usin
【BZOJ】3502 PA2012 Tanie linie
一位 == 可能 const ring 變化 過多 opened 個數 【算法】 【題解】 胡策k≤10的環狀DP做法: 1.欽定法:先確定第一位(可能和第n位)的狀態,然後後面正常做DP,顯然正確答案是一定會被記錄的,因為從整體上看不會有影響。 2.環的特性:取的段和不取
【BZOJ】2142 禮物
禮物 題解 中國剩余定理 pop 影響 ron 個人 公式 nbsp 【算法】中國剩余定理+組合數取模(lucas) 【題意】給定n件物品分給m個人,每人分到wi件,求方案數%p。p不一定是素數。 【題解】 首先考慮n全排列然後按wi劃分成m份,然後對於每份內都是全排列,除
【BZOJ】1607: [Usaco2008 Dec]Patting Heads 輕拍牛頭
span urn isp view splay none for gif class 【算法】模擬 #include<cstdio> #include<algorithm> using namespace std; const int maxn=
【BZOJ】1076 [SCOI2008]獎勵關
算法 結合 期望dp 枚舉 來源 獎勵 使用 狀態 題目 【算法】期望DP+狀壓DP 【題解】f[i][j]表示第i輪,狀態為j的期望得分。 期望DP一般倒著做,因為正著做的話會可能從很多狀態都可以滿足當前選擇,需要雙重枚舉。 而如果倒著做的話,是已知當前狀態枚舉後面的選擇
【hdu1280】前M大的數
tdi bmi space fin name class dig 隊列 math 前m大的數 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total