欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

P1469 找筷子

程序员文章站 2022-05-12 23:32:15
...

这道题一眼看上去很简单,但是看到空间限制为 444 Mb的时候,就不能用普通的方法来解决了。就算你开一个10710^7107的数组你就MLE了。

但是考虑到异或的性质:异或满足交换律和结合律,而且相同两个数异或起来就是000,000异或任何一个数都是这个数,所以如果我们把所有的数都异或起来,那么如果长度为aaa的筷子是成双的,那么两个aaa异或就是000,那么最后的结果就是落单的筷子的长度

#include<bits/stdc++.h>
using namespace std;

int ans,n,a;

int main()
{
	cin>>n;
	for (int i=1;i<=n;i++)
	{
   	  	scanf("%d",&a);
		ans^=a;
	}
	printf("%d",ans);
	return 0;
}
相关标签: 好题