最大異或和

2021-08-28 08:10:25 字數 1085 閱讀 6396

問題描述

給出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

貪心異或,補齊到31位的思想非常好。

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 輸出樣例 題解 異或...