Trie樹 可持久化

2022-05-05 06:09:08 字數 621 閱讀 3917

//

made by xiper

//updata time : 2015 / 12 / 8

//test status: √

//使用前呼叫初始化函式 init() 同時 root[0] = 0;

struct

trie_persistent

tree[triesize];

//獲取字符集雜湊編號 , 必須在 [0 , lettersize) 之內

inline int getletteridx(int c)

//插入字串 str , 上乙個副本是 f

int insert(const

char * str ,int

f)

return

res;

}//在 [l ,r] 副本中查詢字串str

//引數帶入( str , root[l-1] , root[r])

int find(const

char * str , int l ,int

r)

return1;

}void init() //

虛擬節點

}trie;

可持久化trie樹

腦補出來的乙個東西,不知道別人是怎麼實現的 自己也還沒有用寫的 交過題 不過把想法和大佬說了,應該是正確的。乙個數列,每次查詢 l,r 內的數中取乙個數和給定值xor後的最大值。如果沒有區間限制,那麼直接將所有數都插入trie樹就可以了,但是這裡需要指定區間的,所以不能直接處理。因此對於trie樹上...

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 異或滿足...