CSU 1216 異或最大值

2022-05-22 14:51:10 字數 483 閱讀 5586

求n個數裡面,求兩兩異或的最大值

直接來肯定會超時

既然要異或最大值,那麼兩個數的二進位制肯定是正好錯開為好、、、為了能快速找到錯開的數,確實有點難想到,用字典樹,按二進位制數插入,再乙個乙個在字典樹裡面找離他最遠的即可。

#include #include #include using namespace std;

int n;

int a[100010];

int ch[20*100010][2],cnt;

int val[20*100010];

void inserts(int x)

else rt=ch[rt][k];

}//cout

}int main()

int ans=0;

for (int i=0;iprintf("%d\n",ans);

}return 0;

}

CSU 1216(異或最大值)

csu 1216 題目簡述 經典題目,求乙個陣列中兩個數異或運算的最大值。題目極其簡單,但是要求的複雜度需要達到o n log n 還是比較難的。解題思路 總的思路就是構建一棵0 1字典樹,然後乙個數讓查詢乙個與其異或結果最大的數的效率達到o log n 這裡因為異或的特殊性質,可以使用貪心法則來實...

csu 1216 異或最大值

time limit 2 sec memory limit 128 mb submitted 836 solved 300 給定一些數,求這些數中兩個數的異或值最大的那個值 多組資料。第一行為數字個數n,1 n 10 5。接下來n行每行乙個32位有符號非負整數。任意兩數最大異或值 337 9 14 ...

CSU 1216 異或最大值

題目簡述 經典題目,求乙個陣列中兩個數異或運算的最大值。題目極其簡單,但是要求的複雜度需要達到o n log n 還是比較難的。解題思路 總的思路就是構建一棵0 1字典樹,然後乙個數讓查詢乙個與其異或結果最大的數的效率達到o log n 這裡因為異或的特殊性質,可以使用貪心法則來實現。1 0 1字典...