【NOIP模拟赛】“与”

2014年10月31日1,5351

题目描述:

给你一个长度为n的序列A,请你求出一对Ai,Aj(1<=i<j<=n)使Ai“与”Aj最大。

Ps:“与”表示位运算and,在c++中表示为&。

输入描述:

第一行为n。接下来n行,一行一个数字表示Ai。

输出描述:

输出最大的Ai“与”Aj的结果。

样例输入:

3

8

10

2

样例输出:

8

样例解释:

8 and 10 = 8

8 and 2 = 0

10 and 2 = 2

数据范围:

20%的数据保证n<=5000

100%的数据保证 n<=3*10^5,0<=Ai<=10^9

题解

从最高位开始,如有大等于2个数该位为1,则该位为0的数全部删除,否则跳过该位

 

  • thwfhk2016年10月7日 下午5:07 回复

    数据太弱了,两个最大值取and就可以过

    #1