862C - Mahmoud and Ehab and the xor(构造)
2024-08-29 23:28:47
原题链接:http://codeforces.com/contest/862/problem/C
题意:给出n,x,求n个不同的数,使这些数的异或和为x
思路:(官方题解)只有n==2&&x==0时输出NO,接下来考虑YES的情况
先定义一个数pw=217(输出答案时保证不会出现重复数字)
因为 数x 完全可以由三个数异或得到,那么对于n>3的情况,先求1到n-3的异或和,得到y,如果y==x,那么剩下三个数为pw, pw*2, pw^(pw*2)(当x==0时,0, pw,pw^x的输出是不符合题意的),否则输出0, pw,pw^x^y。
n<=3的情况可以直接输出。
AC代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int MAXN=1e5+;
const int pw=<<;
int main()
{
int n,x;
scanf("%d %d", &n, &x);
if(n==&&x==)printf("NO\n");
else
{
printf("YES\n");
if(n==) printf("%d\n", x);
else if(n==) printf("%d %d\n", , x);
else if(n==) printf("%d %d %d\n", pw^x, pw<<, pw^(pw<<));
else
{
int res=;
printf("%d", );
for(int i=;i<=n-;i++){
res^=i;
printf(" %d", i);
}
if(res==x){
printf(" %d %d %d\n", pw, pw<<, pw^(pw<<));
}
else {
//cout<<'*'<<endl;
printf(" %d %d %d\n", , pw, pw^x^res);
}
}
}
return ;
}
最新文章
- rtabmap_ros安装---43
- Promise机制
- jQuery 效果 - animate() 方法
- C++实现设计模式之 — 简单工厂模式
- CJOJ 1331 【HNOI2011】数学作业 / Luogu 3216 【HNOI2011】数学作业 / HYSBZ 2326 数学作业(递推,矩阵)
- 蓝桥杯之K好数
- UML 类图基础
- 什么是A记录 域名
- vue 中获取select 的option的value 直接click?
- 封装axios
- 关于PS的操作
- github管理项目
- 36纯 CSS 动画原理,在页面上表现日蚀现象
- 8张思维导图学习javascript
- IOS开发中的CGFloat、CGPoint、CGSize和CGRect
- ASP.NET MVC中ViewBag和ViewData的区别
- Beta 反(tu)思(cao) &;&; 获小黄衫感言
- django中templates阅读笔记
- POJ1458 最长公共子序列
- 【安卓】自己定义基于onDraw的随意动画(不不过平移/旋转/缩放/alpha)、!
热门文章
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第8节 Math类_19_Math练习:小学数学真题
- C++中的通用结构定义,及相应的序列化、反序列化接口
- Http Handler 介绍
- 《好久不见》(Cover 陈奕迅)箫声远 洞箫
- linux安装JSONCPP
- 前端005/React生命周期
- 如何理解ajax的同步和异步?
- iBatis框架之配置文件之注意点之总结
- 1 Python 新建项目
- idea / eclipse 批量 替换 空白行