當(dāng)前位置:
首頁 >
终章-剑之魂
發(fā)布時間:2024/1/8
57
豆豆
題目
My soul of my sowrd!
終焉的試煉即將到來,作為一名有修養(yǎng)的劍士,雖然沒有習(xí)得n刀流但是二刀流還是沒問題的。然而我也是個劍的收藏者,家里屯著n把劍,每一把劍都有一個靈魂值a[i],由于一些劍之間可能有共鳴,所以我需要兩把契合度最高的劍。據(jù)劍圣所說,兩把編號為i,j劍的契合度為a[i] and a[j]。如何深得劍的靈魂呢?
注:AND 為按位與運算,先將數(shù)轉(zhuǎn)成二進制,不滿位數(shù)的補全0,然后成為兩個長度相同的二進制數(shù),處理的時候,兩個相應(yīng)的二進制位都為1,該位的結(jié)果值才為1,否則為0。
題意
給你n個數(shù)(n<=1000000),問你兩個數(shù)and的值最大是多少。
分析
一般見到位運算,我們可以先把它們分成一位一位來分析。
我們發(fā)現(xiàn)在這些數(shù)中好像我們沒有什么規(guī)律。
那么我們來考慮一下答案是怎樣確定的,
于是我們考慮答案的每一位,若這一位為1,那么必須有兩個數(shù)滿足:
1.ans前i-1位的有1的,這個數(shù)也必須要有(即ans and a[j]=ans)
2.第i位必須也是1(即a[i] and 2i?1 >0)
這樣我們便可以很好的解決問題了。
總結(jié)
- 上一篇: 房子装修选择自装,物业办装修手续,需要哪
- 下一篇: 字符串练习:手机号码屏蔽,身份证号码信息