題意:給定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,那麼問題就變成了找尋最大的x*y,使得x&y==z
把這個要求放寬一點,我們來尋找z是x&y子集的情況(這樣肯定不會丟掉整體最優解)
這意味著z是x的子集,且z是y的子集
問題就變成求包含z的集合中,最大的數字和最小的數字
這就是個高維字首和維護問題了,dp解決
hihoCoder 1496 尋找最大值
時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述 給定n個數a1,a2,a3,an,小ho想從中找到兩個數ai和aj i j 使得乘積ai aj ai and aj 最大。其中and是按位與操作。小ho當然知道怎麼做。現在他想把這個問題交給你。輸入 第一行乙個數t,表示...
hihocoder 1496 尋找最大值
我是真心沒想到,暴力也能過 說好的數學題一般都是有什麼小技巧的麼?到這裡怎麼成了暴力!都是套路啊啊啊啊啊啊!時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 給定n個數a1,a2,a3,an,小ho想從中找到兩個數ai和aj i j 使得乘積ai aj ai and aj 最...
數數(高維DP)
fadbec 很善於數數,如他會數將 a 個紅球,b 個黃球,c 個藍球,d 個綠球排成 列,任意相鄰不同 的數 現在 r 君不知道 fadbec 數的對不對,想讓你也算 算。由於數字 較 所以請輸出除以 109 7 的餘數。四個正整數 a,b,c,d。輸出包含 個整數,表 答案。1 1 1 2 對...