問題描述貪心異或,補齊到31位的思想非常好。給出n個整數,多組詢問求乙個給出的數與這n個數中的乙個數的最大異或的值。
輸入格式
第一行乙個整數n,表示有個數字。
第二行n個正整數。
第三行乙個整數m,表示m個詢問。
第四行m個整數,表示m個詢問的整數。
輸出格式
共m行,對於每個詢問輸出最大的異或值。
輸入樣例
43 5 6 7
31 4 7
輸出樣例77
4樣例說明
與1異或值最大的數為6,異或值為7
與4異或值最大的數為5,異或值為7
與7異或值最大的數為3,異或值為4
限制與約定
1<= n,m <=10^5,所有資料 < 2^31-1
時間限制:1s
空間限制:256mb
code
#include
#include
using namespace std;
int edge;
int son[
4000005][
2];int pd[
4000005];
int cc[
4000005];
int n;
inline
intread()
return x;
}inline
void
add(
int x)
now=son[now]
[u];
} pd[now]=1
; cc[now]
=x;}
inline
intask
(int x)
}else}}
return maxx;
}int
main()
int m=
read()
;for
(int i=
1;i<=m;i++
)return0;
}
最大異或和
展開 題目描述 給定乙個非負整數序列 初始長度為nn。有 mm 個操作,有以下兩種操作型別 a x 新增操作,表示在序列末尾新增乙個數 xx,序列的長度 n 1n 1。q l r x 詢問操作,你需要找到乙個位置 pp,滿足l le p le rl p r,使得 a p oplus a p 1 op...
3261 最大異或和
給定乙個非負整數序列,初始長度為n。有m個操作,有以下兩種操作型別 1 ax 新增操作,表示在序列末尾新增乙個數x,序列的長度n 1。2 qlrx 詢問操作,你需要找到乙個位置p,滿足l p r,使得 a p xor a p 1 xor xor a n xor x 最大,輸出最大是多少。第一行包含兩...
最大異或對
acwing 143.最大異或對 在給定的n個整數a1,a2 an中選出兩個進行xor 異或 運算,得到的結果最大是多少?輸入格式第一行輸入乙個整數n。第二行輸入n個整數a1 an。輸出格式輸出乙個整數表示答案。資料範圍1 n 105,0 ai 231 輸入樣例 3 1 2 3 輸出樣例 題解 異或...