時間限制:10000ms
單點時限:1000ms
記憶體限制:256mb
描述 給定n個數a1, a2, a3, … an,小ho想從中找到兩個數ai和aj(i ≠ j)使得乘積ai × aj × (ai and aj)最大。其中and是按位與操作。
小ho當然知道怎麼做。現在他想把這個問題交給你。
輸入 第一行乙個數t,表示資料組數。(1 <= t <= 10)
對於每一組資料:
第一行乙個整數n(1<=n<=100,000)
第二行n個整數a1, a2, a3, … an (0 <= ai <220)
輸出 乙個數表示答案
樣例輸入
2 3
1 2 3
4 1 2 4 5
樣例輸出
12 80
#include
using
namespace
std;
long
long a[100000];
int main()
cout
<}
}
hihocoder 1496 尋找最大值
我是真心沒想到,暴力也能過 說好的數學題一般都是有什麼小技巧的麼?到這裡怎麼成了暴力!都是套路啊啊啊啊啊啊!時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 給定n個數a1,a2,a3,an,小ho想從中找到兩個數ai和aj i j 使得乘積ai aj ai and aj 最...
hihocoder1496(高維字首和)
題意 給定n個數a1,a2,a3,an,小ho想從中找到兩個數ai和aj i j 使得乘積ai aj ai and aj 最大。其中and是按位與操作。第一行乙個整數n 1 n 100,000 第二行n個整數a1,a2,a3,an 0 ai 2 20 分析 嘗試列舉and值z,那麼問題就變成了找尋最...
尋找最大子樹
問題描述 給乙個二叉樹,每個節點都是正或負整數,如何找到乙個子樹,它所有節點的和最大?思路 採用自底向上的計算。先計算左右子樹總和值,用左右子樹的總和加上當前節點值,如果當前總和大於最大值,則更新最大值,同時將最大子樹根節點更新為當前根。簡單說,就是後序遍歷。include include usin...