codevs3031 最富有的人

2022-05-08 05:39:12 字數 1238 閱讀 7963

題目描述 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...