4274. 【NOIP2015模拟10.28B组】终章-剑之魂
Description
【背景介紹】
古堡,暗鴉,斜陽(yáng),和深淵……
等了三年,我獨(dú)自一人,終于來(lái)到了這里……
“終焉的試煉嗎?就在這里嗎?”我自言自語(yǔ)道。
“終焉的試煉啊!就在這里啊!”我再一次自言自語(yǔ)道。
“這背后可能有那個(gè)東西嗎?”我自言自語(yǔ)道。
“這背后一定有那個(gè)東西呢!”我又一次自言自語(yǔ)道。
我沉默著,踏上黑漆漆的索橋,小心翼翼地,拿出鋒利的注入我靈魂的雙劍……
“那么,我們開(kāi)始吧……”我最后一次自言自語(yǔ)道。
【題目描述】
My soul of my sowrd!
終焉的試煉即將到來(lái),作為一名有修養(yǎng)的劍士,雖然沒(méi)有習(xí)得n刀流但是二刀流還是沒(méi)問(wèn)題的。然而我也是個(gè)劍的收藏者,家里屯著n把劍,每一把劍都有一個(gè)靈魂值a[i],由于一些劍之間可能有共鳴,所以我需要兩把契合度最高的劍。據(jù)劍圣所說(shuō),兩把編號(hào)為i,j劍的契合度為a[i] and a[j]。如何深得劍的靈魂呢?
注:AND 為按位與運(yùn)算,先將數(shù)轉(zhuǎn)成二進(jìn)制,不滿位數(shù)的補(bǔ)全0,然后成為兩個(gè)長(zhǎng)度相同的二進(jìn)制數(shù),處理的時(shí)候,兩個(gè)相應(yīng)的二進(jìn)制位都為1,該位的結(jié)果值才為1,否則為0。例下圖。
Input
第一行一個(gè)整數(shù)n,代表藏劍數(shù)。
第二行n個(gè)整數(shù),第i個(gè)整數(shù)表示a[i]。
Output
輸出包含一個(gè)正整數(shù),最好的兩把劍的契合度。
Sample Input
5
12 5 6 3 1
Sample Output
4
【樣例解釋】
5 and 6=4或者12 and 5=4或者12 and 6=4
Data Constraint
對(duì)于40%的數(shù)據(jù) n ≤ 1,000
對(duì)于100%的數(shù)據(jù) n ≤ 1,000,000,0 ≤ a[i] < 2^31
思路
先考慮答案的性質(zhì):
Ans=a1*2^0+a2*2^1+a3*2^a3+…….+an*2^(n-1);
可見(jiàn),答案中嗎,高位的數(shù)選肯定比不選優(yōu)。
那我們就考慮答案的倒數(shù)第i位是否可以選。
設(shè)當(dāng)前Ans為比第i位高的所有二進(jìn)制位選擇的最優(yōu)情況的和,那么如果第i位能選,就必定在這n個(gè)數(shù)中至少有兩個(gè)數(shù)滿足:
1:當(dāng)前答案中的所有二進(jìn)制為1的位置,在相應(yīng)的這個(gè)數(shù)中的位置也為1(即ans and a=ans);
2:這個(gè)數(shù)的二進(jìn)制第i位為1(即a and (2^(i-1)=(2^(i-1)))。
所以,我們只需從高位向低位掃一遍就可以了。
時(shí)間:O(30*n);
空間:n。
總結(jié)
以上是生活随笔為你收集整理的4274. 【NOIP2015模拟10.28B组】终章-剑之魂的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java中IO流体系以及常用实现类
- 下一篇: OmniGraffle 制作表格 调整对