SCOI2016 幸運數字

2022-02-05 12:03:24 字數 461 閱讀 9547

線性基合併o(log^2n)不能更小

但是倍增o(qlog^3n)可過233333

甚至樹剖o(qlog^4n)可過666666

還有乙個樹上路徑查詢利器:點分治!

詢問離線

列舉重心,處理路徑過重心的詢問

邊dfs邊插入線性基,維護每個點到根路徑上的線性基

每個詢問,如果所屬不同的子樹,那麼過當前重心

線性基暴力合併

o((n+q)log^2n)

十分優秀!

點分治好處在於:

可以穩定o(nlogn)找到所有路徑

路徑拼成兩半,

根據重心拼拼湊湊嘗試拼出答案。

而且dfs本身有優秀的單點增量的性質!

一般地,倍增一條路徑就要o(logn),樹剖一次o(log^2n)

能離線處理詢問的話,點分治還是很優秀的啦~

(雖然修改一般只能單點,,還得離線)

SCOI2016 幸運數字

不想說了.就樹上的線性基合併.但是講道理o nlogn 3 為什麼能過去呢.但是就是能過去啊,因為博主是菜雞不怎麼會澱粉質啊,所以本篇題解只能提供這個複雜度的演算法了qaq 求選出來一些數使得異或和最大?線性基啊!那怎麼求路徑上的呢?乙個乙個往上合併,一直合併到lca就行了吧!乙個乙個合併顯然不行,...

SCOI2016 幸運數字

題目 來寫乙個 3 個 log 的垃圾做法 其實非常顯然就是倍增把這條路徑處理一遍,之後維護出倍增陣列的線性基,大力合併就好了 線性基合併就是把乙個線性基的所有元素都拿出來,乙個乙個插入到另外乙個中去 include include include include define maxn 20005...

SCOI2016 幸運數字

題意 給定一棵n個點的樹,每個點有點權 g u 你需要回答q次詢問,每次詢問一條路徑 u,v 上選一些點的最大異或和。n leq 20000,q leq 200000,g u leq 2 題解 二合一板子題。寫了個樹剖發現 o n log 能過,我也不知道咋回事。點分治可以做到 o n log n ...