B3908 [语言月赛 202312] 异或构造题?

题目描述

给定 n 个非负整数 1,2,⋯ ,a1​,a2​,⋯,an​,你需要确定一个非负整数 x,使得 1⊕2⊕⋯a1​⊕a2​⊕⋯⊕an​⊕x 最小。

你需要计算 x 和 1⊕2⊕⋯a1​⊕a2​⊕⋯⊕an​⊕x。

其中 ⊕ 代表异或,x⊕y 在 C++ 中可表示为 x ^ y。 对于两个非负整数 x,y,它们的异或是指,将它们作为二进制数,对二进制表示中的每一位进行如下运算得到的结果:

  • x 和 y 的这一位上不同时,结果的这一位为 1;
  • x 和 y 的这一位上相同时,结果的这一位为 0。

例如:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0。

输入格式

输入共两行。

第一行一个整数 n,代表序列 a 的长度。
第二行 n 个整数 1,2,⋯ ,a1​,a2​,⋯,an​,代表序列 a。

输出格式

输出共一行两个整数 x 和 1⊕2⊕⋯a1​⊕a2​⊕⋯⊕an​⊕x。

输入输出样例

输入 #1

2
1 2

输出 #1

3 0

输入 #2

2
7 7

输出 #2

0 0

说明/提示

数据规模与约定

对于 100%100% 的数据,1≤n≤106,0≤ai​≤1018。

测试点 n ai​ 特殊性质
1 =1 ≤103
2 =2 ≤103 a1​=a2​
3∼4 =2 ≤103
5 ≤103 =0
6∼8 ≤103 ≤103
9∼11 ≤106 ≤103
12∼13 ≤106 ≤1
14∼20 ≤106 ≤1018

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	long long x=0;
	for(int i=1;i<=n;i++){
		long long a;
		cin>>a;
		x=x^a;
	}
	cout<<x<<" "<<0<<endl;



	return 0;
}

相关推荐

  1. B3908 [语言 202312] 构造

    2023-12-29 20:04:02       50 阅读
  2. 洛谷 B3918 [语言 202401] 图像变换

    2023-12-29 20:04:02       36 阅读
  3. B3684 [语言202212] 不可以,总司令

    2023-12-29 20:04:02       61 阅读
  4. B3928 [GESP202312 四级] 田忌赛马

    2023-12-29 20:04:02       30 阅读
  5. B3651 [语言202208] 数组调整

    2023-12-29 20:04:02       54 阅读
  6. B3668 [语言202210] 应急食品

    2023-12-29 20:04:02       54 阅读
  7. B3810 [语言 202307] 扶苏和串

    2023-12-29 20:04:02       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-29 20:04:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-29 20:04:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-29 20:04:02       82 阅读
  4. Python语言-面向对象

    2023-12-29 20:04:02       91 阅读

热门阅读

  1. MySQL5.7的几种安装方式总结

    2023-12-29 20:04:02       56 阅读
  2. 关于MySql字段类型的实践总结

    2023-12-29 20:04:02       65 阅读
  3. 【算法】【动规】双数组系列问题

    2023-12-29 20:04:02       53 阅读
  4. 零信任 aTrust 本地集群部署

    2023-12-29 20:04:02       61 阅读