【JZOJ 4274】【NOIP2015模拟10.28B组】终章-剑之魂

题目大意:

(max{a_i&a_j}quad(i,jin {1cdots n}))

正文:

在位运算中,高位的数若选了得到的数肯定更大,那就将数列从大到小排序,比较相邻的两数就行了。

代码:


int main()
{
	scanf ("%d", &n);
	for (int i = 1; i <= n; i++)
		scanf("%lld", &a[i]);
	sort (a + 1, a + 1 + n, cmp);
	for (int i = 1; i < n; i++)
	{
		if((a[i + 1] & a[i]) >= ans)
			ans = (a[i + 1] & a[i]);
		else break;
	}
	printf("%lld", ans);
    return 0;
}
原文地址:https://www.cnblogs.com/GJY-JURUO/p/13375793.html