題目大意:給你n(n≤1
e5
n\leq1e5
n≤1e
5)個整數.讓你確定乙個整數x最小化 max
\max\
max
題目思路:
二進位制從高位到低位考慮.當第i
ii位同時存在』0』和』1』時,貢獻恒為2i2^
2i.這一位放0/1就只需要考慮另一半的值了.
例如:x的第i
ii位放0.那麼那些 [本位為0的數]與x作異或都會比 [本位為1的數]與x作異或 要小了.所以接下來我們只需要考慮那些 [本位為1的數].反之亦然.所以這裡形成兩個不同的決策(要麼填1要麼填0嘛).我們可以遞迴求解,然後取兩者的最小值即可.
然後當本位只存在』0』 或 只存在』1』 時,x填相同的值,貢獻就為0了.
所以用01trie儲存序列.dfs跑一下求答案即可.
ac**:
#include
using
namespace std;
#define ll long long
const
int maxn =
4e6;
namespace trie
} ll dfs (
int u ,
int pos)
}int
main()
cout << trie::dfs (0,
30)<< endl;
return0;
}
01字典樹 貪心(順便總結字典樹模板)
題目大意 題意 給你n個數,然後給你m組詢問,每組詢問給你乙個數,輸出n個數中與該數亦或 的最大的那個數,輸出的是被亦或的那個數,不是亦或後的結果。給你n個數,然後給你m組詢問,每組詢問給你乙個數,輸出n個數中與該數亦或 的最大的那個數,輸出的是被亦或的那個數,不是亦或後的結果。思路 我用的是字典樹...
字典樹 與 01字典樹
字典樹可以降低空間複雜度 01字典樹可以降低時間複雜度。字典樹 又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較...
01字典樹 小結
為了做13年南京網路賽的一道題 學了這個01字典樹 看了別人的模板 之後切了幾道水題 現在總結一下 01字典樹的實現可以看成是把乙個數的二進位制字元化後插入到一顆一般的字典樹中 比如在01字典樹種插入3時 相當於在字典樹中插入00 00011 一共33為,這個根據具體實現不同 查詢最大異或值的時候我...