01 Trie 維護異或和

2022-06-27 17:57:13 字數 790 閱讀 6226

#2049. 多重集合

初始有乙個空陣列,現有兩種操作:

向陣列中插入乙個數字

陣列中的所有數字+1

給出 n 個操作,輸出每次操作後整個陣列的異或和。

01字典樹板子題

//#include#include#include#include#include#include#include#include#includeusing namespace std;

#define pb push_back

typedef long long ll;

typedef unsigned long long ull;

const int inf=0x3f3f3f3f;

const int mod=1e9+7;

const int seed=233;

const int n=2e5+10;

struct trie

int mknode()

void mallain(int u)

void insert(int &u,int x,int dep)//插入某數字

void erase(int &u,int x,int dep)//刪除某數字

void add(int u)//全域性加1

}trie;

int main()

else

printf("%lld\n",trie.val[1]);

}return 0;}/*

32 2

2 11

*/

異或最大 0 1trie

傳送門 每個整數看著32位的二進位制01串,將n個數從高位到低位依次插入到乙個01trie中。考慮插入第i個數,相當於在trie中進行依次檢索,根據xor相同為0,不同為1的特點,貪心的每次走與ai當前位相反的指標,如果沒有相反的節點則走相同的,這樣就可以得到與ai做xor運算的最大aj inclu...

CSUOJ 1216 異或最大值 01Trie

time limit 2 sec memory limit 128 mb submit 367 solved 118 submit status web board 給定一些數,求這些數中兩個數的異或值最大的那個值 第一行為數字個數n,1 n 10 5。接下來n行每行乙個32位有符號非負整數。任意兩...

01Trie 可持久化01Trie學習筆記

之前一直不把trie當回事,直到今天看了篇部落格,據說01trie可以當平衡樹使?然後就學了學,發現和權值線段樹也沒什麼區別 01trie 權值線段樹的本質是一棵01trie 01trie就是把數字的二進位制位從高到低當做字串扔進trie裡 巨佬一眼就能看出,把最高位是0的當做左兒子,最高位是1的當...