可持續字典樹 Perfect Security

2022-06-13 16:30:13 字數 867 閱讀 3259

題目鏈結

題目大意:給你兩個序列,第二個序列可以任意進行排列變換,然後由這兩個序列一一異或得到答案序列,要求答案序列的字典序最小。

可持續字典樹與第k大可持續線段樹的區別主要在於每個節點上 ,它多了乙個記錄值。

因為線段樹肯定是對區間處理,要+1的,但是字典樹是對點處理,這兩個值都要記錄。

#include#include

#include

using

namespace

std;

const

int n=3e5+88

;int sum[n*30][2],son[n*30][2

],x,n,tot,a[n];

void update(int last,int cur,int num,int

pos)

void query(int last,int cur,int num,int pos,int

ans)

int temp=!!(num&(1

0) --sum[cur][temp],query(son[last][temp],son[cur][temp],num,pos-1

,ans);

else --sum[cur][temp^1],query(son[last][temp^1],son[cur][temp^1],num,pos-1,ans|(1

<}int

main()

for(int i=1;i<=n;++i) query(0,(n-1)*30+1,a[i],29,0

); puts(

"");

}

字典樹 Trie樹(持續更新)

今天開始學習字典樹,順便做做筆記,等多刷幾道題再來更新一波經驗 字典樹,又稱單詞查詢樹 字首樹 鍵樹,是一種樹形結構,是一種雜湊樹的變種。1 根節點不包含字元,除根節點外每乙個節點都只包含乙個字元。2 從根節點到某一節點,路徑上經過的字元連線起來,為該節點對應的字串。3 每個節點的所有子節點包含的字...

qwb VS 去汙棒 可持續化01字典樹

problem i qwb vs 去汙棒 time limit 2 sec memory limit 256 mb submit 95 solved 36 submit status web board description qwb表白學姐失敗後,鬱鬱寡歡,整天坐在太陽底下賞月。在外人看來,他每天...

可持久化字典樹

以每個結點為根,建一顆字典樹 內容為1到i的值 這樣之後,做差後,即為一段區間或是一段路徑。可以發現,如果裸著建,不僅要消耗很多的時間,更是要消耗很多的空間。考慮以i為根的字典樹和以 i 1 為跟的字典樹的異同。可以發現,在當前以i為根的字典樹上減去a i 就是 i 1 的字典樹了。所以,我們可以將...