【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;
}

猜你喜欢

转载自www.cnblogs.com/GJY-JURUO/p/13375793.html
今日推荐