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

题目大意:

\(\max\{a_i\&a_j\}\quad(i,j\in \{1\cdots 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;
}
posted @ 2020-07-25 10:37  Jayun  阅读(88)  评论(0编辑  收藏  举报