【BZOJ4543】[POI2014]Hotel加強版 Description 同OJ3522數據范圍:n<=100000 Sample Input 7 1 2 5 7 2 5 2 3 5 6 4 5 Sample Output 5 題解:很神的做法 ...
BZOJ Hotel加強版 長鏈剖分 題面 BZOJ,沒有題面 洛谷,只是普通版本 題解 原來我們的 O n 做法是設 f i j 表示以 i 為根的子樹中,距離 i 的深度為 j 的點的個數,這樣子可以每次在 LCA 處合並答案。 然后長鏈剖分優化一下,就變成了 O n 的 寫的詳細寫的題解 玄學的指針我也沒太懂啊。。。。我才不會說我代碼是照着題解打的 upd:之前的代碼蒯錯了,我去BZOJ把 ...
2018-08-12 21:26 13 1190 推薦指數:
【BZOJ4543】[POI2014]Hotel加強版 Description 同OJ3522數據范圍:n<=100000 Sample Input 7 1 2 5 7 2 5 2 3 5 6 4 5 Sample Output 5 題解:很神的做法 ...
這是和重鏈剖分(dsu on tree,http://www.cnblogs.com/zzqsblog/p/6146916.html)一類的trick,不過它的適用范圍與dsu on tree不同,它適用於涉及到深度的查詢。 例1 k-th ancestor query https ...
之前寫了那么長一篇Blog…現在不如寫篇小短文…說一下另一種樹鏈剖分方法——長鏈剖分的事情。它可以比重鏈剖分更快地完成一些東西。 樹鏈剖分的原始版本重鏈剖分非常經典,這里就不從頭介紹了。 原本的剖分方法是按照子樹大小剖分,與子樹點數最多的兒子連成鏈,所以叫做重鏈剖分…然后顯然就有 ...
長鏈剖分 長鏈剖分是一種類似\(\mbox{dsu on tree}\)的小\(\mbox{trick}\),可以把維護子樹中只與深度有關的信息做到線性的時間復雜度。 實現方式&復雜度證明 對每個點尋找深度最大的兒子作為重兒子,其余作為輕兒子。由此得到了若干條互不相交的長鏈。 在維護 ...
BZOJ 洛谷 \(Description\) 給定一棵樹,每次詢問給定\(p,k\),求滿足\(p,a\)都是\(b\)的祖先,且\(p,a\)距離不超過\(k\)的三元組\(p,a,b\)個數。 \(n,q\leq3\times10^5\)。 \(Solution\) \(p,a,b ...
【BZOJ3653】談笑風生(長鏈剖分) 題面 BZOJ 洛谷 權限題啊。。。。 題解 首先根據題目給的條件,發現\(a,b\)都要是\(c\)的父親。 所以這三個點是樹上的一條深度單增的鏈。 因為\(a,b\)之間距離不超過\(k\),並且\(a\)被欽定了,所以只有兩種情況: 一種 ...
長鏈剖分總結 概念 長鏈剖分和輕重鏈剖分十分相似,都是將一棵樹節點的信息分成多條鏈的信息,但是前者是以深度剖分,后者則是以子樹大小來剖分。 同時長鏈剖分還借鑒了$dsu\;on\;tree$的一些$trick$使得它能十分高效地合並子樹信息。 性質 破天荒地寫了證明 性質 ...
樹鏈剖分是解決樹上問題的一種常見數據結構,對於樹上路徑修改及路徑信息查詢等問題有着較優的復雜度。樹鏈剖分分為兩種:重鏈剖分和長鏈剖分,因為長鏈剖分不常見,應用也不廣泛,所以通常說的樹鏈剖分指的是重鏈剖分。在這里講解並總結一下樹鏈剖分的實現、優秀性質及應用。 重鏈剖分 先來介紹幾個重鏈剖分 ...