acwing 143 最大異或對

2022-09-23 01:42:10 字數 951 閱讀 7247

在給定的 n 個整數 a1,a2……an 中選出兩個進行 xor(異或)運算,得到的結果最大是多少?

輸入格式

第一行輸入乙個整數 n。

第二行輸入 n 個整數 a1~an。

輸出格式

輸出乙個整數表示答案。

資料範圍

1≤n≤105,

0≤ai<231

輸入樣例:

31 2 3

輸出樣例:

3暴力試試——超時tle

#include#includeusing namespace std;

const int n = 100010;

int a[n];

int main()

}printf("%d", res);

return 0;

}

使用trie樹

const int n = 3000010; // 每個數有31位,然後一共最多1e5個數

int a[n];

int son[n][2], idx;

void insert(int x)

}// 返回與x異或後最大的結果

int query(int x)

//p = son[p][!t];

else

}return res;

}int main()

for(int i = 0; i < n; i++) res = max(res,query(a[i]));

printf("%d", res);

return 0;

}

AcWing 143 最大異或對

題目描述 在給定的n個整數a1,a2 an中選出兩個進行xor 異或 運算,得到的結果最大是多少?輸入格式 第一行輸入乙個整數n。第二行輸入n個整數a1 an。輸出格式 輸出乙個整數表示答案。資料範圍 1 n 10 5,0 ai 2 31 輸入樣例 3 1 2 3輸出樣例 3分析 本題要求我們從n個...

Acwing143 最大異或對

用乙個tire樹來存下n個數的二進位制形式的01串,串的長度是31,因為每個數最多為2 31所以,取31,然後根據異或的特性,列舉一下所有的數,取這個數的反碼,去樹中尋找盡可能和反碼向同的路徑,並且記錄下路徑過程的異或值即可 include include include using namespa...

acwing 143 最大異或對

題面 在給定的n個整數a1,a2 an a1,a2 an a1,a2 an中選出兩個進行xor 異或 運算,得到的結果最大是多少?輸入格式 第一行輸入乙個整數n。第二行輸入n個整數a 1 a1 a1 a n an an。輸出格式 輸出乙個整數表示答案。資料範圍1 n 105 1 n 105 1 n ...