CF888G

wuhupai發表於2024-07-29

挺難想的題

要求最小生成樹,我們使用kruskal演算法。考慮公式化的將\(a_{i}\)插入01trie,那麼我們要找邊權最小的邊,那麼就可以想到是lca深度最大的幾個點。因為每個葉節點都對應著一個\(a_{i}\)。考慮dfs,我們在做到一個節點u時,左子樹和右子樹肯定都分別在一個連通塊裡了。那麼我們就是要找一條邊使得左右子樹異或起來最小這個我們無法快速的做,只能去dfs,發現複雜度是最小的子樹的大小。這和啟發式合併原理相同,於是複雜度是對的