可持久化trie樹

2022-04-29 20:30:11 字數 402 閱讀 7114

腦補出來的乙個東西,不知道別人是怎麼實現的……

自己也還沒有用寫的**交過題……不過把想法和大佬說了,應該是正確的。

乙個數列,每次查詢[l, r]內的數中取乙個數和給定值xor後的最大值。

如果沒有區間限制,那麼直接將所有數都插入trie樹就可以了,但是這裡需要指定區間的,所以不能直接處理。

因此對於trie樹上的每個點,我們記錄下包括這個點在內的子樹中一共有多少結束節點。

然後每插入乙個點相當於對結束節點的單點修改,用類似於主席樹的方式插入即可。

對於區間[1, l - 1]和[1, r]的同乙個位置的節點,如果2個點的值相差大於0,那麼說明這個區間中有數經過了這個節點,說明這個節點是存在的。

因此我們就可以知道這個區間內的trie樹長什麼樣了。

然後直接跑就行了。

Trie樹 可持久化

made by xiper updata time 2015 12 8 test status 使用前呼叫初始化函式 init 同時 root 0 0 struct trie persistent tree triesize 獲取字符集雜湊編號 必須在 0 lettersize 之內 inline ...

Trie 可持久化Trie

warning 以下 未經測試,若發現錯誤,歡迎指出qwq 一種簡單的資料結構,可儲存大量字串,可在 o len 的時間內完成插入,刪除,查詢等操作。下面是乙個簡單的例子,對於abc,abd,abcd,bcd這四個字串建trie樹,如下圖 其中,紅色節點為乙個字串的結尾。對於任意節點,從根節點到該節...

可持久化trie

可持久化trie樹 給定乙個非負整數序列,初始長度為n。有m個操作,有以下兩種操作型別 a x 新增操作,表示在序列末尾新增乙個數x,序列的長度n 1。q l r x 詢問操作,你需要找到乙個位置p,滿足l p r,使得 a p a p 1 a n x最大,輸出最大是多少。solution 異或滿足...