題目鏈結
題目大意:給你兩個序列,第二個序列可以任意進行排列變換,然後由這兩個序列一一異或得到答案序列,要求答案序列的字典序最小。
可持續字典樹與第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 的字典樹了。所以,我們可以將...