傳送門
每個整數看著32位的二進位制01串,將n個數從高位到低位依次插入到乙個01trie中。
考慮插入第i個數,相當於在trie中進行依次檢索,根據xor相同為0,不同為1的特點,貪心的每次走與ai當前位相反的指標,
如果沒有相反的節點則走相同的,這樣就可以得到與ai做xor運算的最大aj
#include#define n 100050*30
using namespace std;
int ch[n][2],val[n],n,ans,tot;
void insert(int x) val[now] = x;
}int quary(int x) return val[now];
}int main() printf("%d",ans); return 0;
}
01 Trie 維護異或和
2049.多重集合 初始有乙個空陣列,現有兩種操作 向陣列中插入乙個數字 陣列中的所有數字 1 給出 n 個操作,輸出每次操作後整個陣列的異或和。01字典樹板子題 include include include include include include include include incl...
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)
題意 轉化後的題意是有一種操作 一種詢問 1.操作 在序列末尾插入乙個數 2.詢問 給定l,r x l,r,x l,r,x,求區間l,r l,rl,r中與x xx異或能得到的最大異或值 化後的題意 思路 題意都被轉化成這樣了。應該就沒啥難度了 用類似主席樹的方式構建可持久化01tr ie 01tri...