P1469 找筷子

找筷子

题目描述

经过一段时间的紧张筹备,电脑小组的“RP 餐厅”终于开业了,这天,经理 LXC 接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘手的问题:筷子!

CX 小朋友找出了餐厅中所有的筷子,但遗憾的是这些筷子长短不一,而我们都知道筷子需要长度一样的才能组成一双,更麻烦的是 CX 找出来的这些筷子数量为奇数,但是巧合的是,这些筷子中只有一只筷子是落单的,其余都成双,善良的你,可以帮 CX 找出这只落单的筷子的长度吗?

输入格式

第一行是一个整数,表示筷子的数量 n n n

第二行有 n n n 个整数,第 i i i 个整数表示第 i i i 根筷子的长度 a i a_i ai

输出格式

输出一行一个整数表示答案。

样例 #1

样例输入 #1

9
2 2 1 3 3 3 2 3 1

样例输出 #1

2

提示

数据规模与约定

  • 对于 30 % 30\% 30% 的数据,保证 n ≤ 1 0 5 n \leq 10^5 n105
  • 对于 100 % 100\% 100% 的数据,保证 1 ≤ n ≤ 1 0 7 + 1 1 \leq n \leq 10^7 + 1 1n107+1 1 ≤ a i ≤ 1 0 9 1 \leq a_i \leq 10^9 1ai109

提示

  • 请注意数据读入对程序效率造成的影响。
  • 请注意本题的空间限制为 4 4 4 Mb。

本题目的空间限制为4Mb, 所以不能开数组
异或(XOR)是一种布尔运算,用于比较两个数据位的不同之处。它的符号是“^”。如果两个数据位不同,则异或的结果为1,否则为0。例如,1 ^ 0 = 1,0 ^ 1 = 1,1 ^ 1 = 0,0 ^ 0 = 0。

异或的常见用途包括:

  1. 加密:异或可以用于对数据进行简单的加密,只需要用一个密钥对数据进行异或操作即可。

  2. 校验:异或可以用于数据的校验,比如校验和或CRC检验,可以检测数据中的错误位。

  3. 交换值:异或可以用于交换两个变量的值,比如a ^= b; b ^= a; a ^= b;可以实现交换a和b的值。

  4. 求解问题:异或可以用于解决一些问题,比如找出数组中唯一出现的数字,或者找出数组中出现次数为奇数的数字等。

总之,异或是一种非常有用的运算,可以用于很多领域,包括加密、校验、交换值和求解问题等。
由此可知,本题目使用异或来解决

#include
using namespace std;
int n;
int main()
{
	cin>>n;
	int ans=0,x=0;
	for(int i=0;i<n;i++){
		cin>>x;
		ans=ans^x;
	}
	cout<<ans;
	return 0;
}

你可能感兴趣的:(暑假笔记,算法,数学)