題目描述 description
在你的面前有n堆金子,你只能取走其中的兩堆,且總價值為這兩堆金子的xor值,你想成為最富有的人,你就要有所選擇。
輸入描述 input description
第一行包含兩個正整數n,表示有n堆金子。
第二行包含n個正整數,表示每堆金子的價值。
輸出描述
output description
第一行包含乙個正整數,表示能獲得的最大總價值。
樣例輸入
sample input
101 2 3 4 5 6 7 8 9 10
樣例輸出
sample output
15
資料範圍及提示
data size & hint
資料範圍:
n<=100000 每堆金子數<=2^31-1
正解:貪心+trie
解題報告:
以前我出的題目裡面有這道題。模型抽象出來也是求兩個數的xor和最大值。
就是把所有數插入到trie樹中,每個結點都表示的是乙個二進位制位,然後對於每個數再在trie樹中去查詢。因為是xor,所以每一位都盡可能不同,貪心地從高位往低位選取就可以了。
1//it is made by jump~
2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include
13using
namespace
std;
14 typedef long
long
ll;15
const
int maxn = 100011;16
intn,a[maxn],cnt,ans;
17int tr[3000000][2
];18
19 inline int
getint()
2025
26 inline void insert(int
x)33}34
35 inline void query(int
x)42 ans=max(ans,total);43}
4445 inline void
work()
5253
intmain()
54
OpenCV3 0 3 1版本的改進
opencv現在更新到了3.1版本,相對opencv2有了很大改進,其中對於硬體加速,移動開發 ios,android 的支援成為亮點。新版的opencv採用了核心 外掛程式的架構模式,整體上更加易於擴充套件。其中最與時俱進的特點就是支援最新的 windows 和 os x 作業系統和最新的開發工具...
每日演算法系列 EOJ 3031 二進位制倒置
給定乙個整數 例如 題目鏈結 這題考查的主要是大數的進製轉換,其他沒有什麼演算法技巧,但是對 實現要求還是挺高的,適合用來鍛鍊你的耐心和 風格。整體思路非常簡單,不就是先把輸入的 10 進製數 所以整體 拆分成了三步,先從 10 進製轉 2 進製,再顛倒 2 進製,最後從 2 進製轉 10 進製。為...
CODEVS 電話連線
題目描述 description 乙個國家有n個城市。若干個城市之間有 線連線,現在要增加m條 線 線當然是雙向的了 使得任意兩個城市之間都直接或間接經過其他城市有 線連線,你的程式應該能夠找出最小費用及其一種連線方案。輸入描述 input description 輸入檔案的第一行是n的值 n 10...