原题链接: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 ;
}

最新文章

  1. rtabmap_ros安装---43
  2. Promise机制
  3. jQuery 效果 - animate() 方法
  4. C++实现设计模式之 — 简单工厂模式
  5. CJOJ 1331 【HNOI2011】数学作业 / Luogu 3216 【HNOI2011】数学作业 / HYSBZ 2326 数学作业(递推,矩阵)
  6. 蓝桥杯之K好数
  7. UML 类图基础
  8. 什么是A记录  域名
  9. vue 中获取select 的option的value 直接click?
  10. 封装axios
  11. 关于PS的操作
  12. github管理项目
  13. 36纯 CSS 动画原理,在页面上表现日蚀现象
  14. 8张思维导图学习javascript
  15. IOS开发中的CGFloat、CGPoint、CGSize和CGRect
  16. ASP.NET MVC中ViewBag和ViewData的区别
  17. Beta 反(tu)思(cao) &amp;&amp; 获小黄衫感言
  18. django中templates阅读笔记
  19. POJ1458 最长公共子序列
  20. 【安卓】自己定义基于onDraw的随意动画(不不过平移/旋转/缩放/alpha)、!

热门文章

  1. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第8节 Math类_19_Math练习:小学数学真题
  2. C++中的通用结构定义,及相应的序列化、反序列化接口
  3. Http Handler 介绍
  4. 《好久不见》(Cover 陈奕迅)箫声远 洞箫
  5. linux安装JSONCPP
  6. 前端005/React生命周期
  7. 如何理解ajax的同步和异步?
  8. iBatis框架之配置文件之注意点之总结
  9. 1 Python 新建项目
  10. idea / eclipse 批量 替换 空白行