D. Ehab the Xorcist

题目链接-D. Ehab the Xorcist


题目大意
给定两个数字 u 和 v ,构造一个最短的序列a满足a1⊕a2⊕…⊕an=u 并且 a1+a2+…+an=v

解题思路
需要特判的情况:

  1. u>v:不存在
  2. u,v奇偶性不同:不存在
  3. u=v=0:直接输出0
  4. u=v≠0:序列元素个数为1 元素为u

除去这些需要特判的情况,该题就转化为v−u为偶数时的问题,因为v−u为偶数,所以我们能得出序列a的大小最大3

  • 所以我们可以构造一个长度为3的序列{u,x,x},满足异或值为u且u+x+x=v,x=(v-u)/2
  • 但是还要看先看一下能否构造长度为 2 的序列{u+x,x},使得(u+x)^x=u且u+x+x=v
  • 具体操作见代码

附上代码

#include<bits/stdc++.h>
#define int long long
#define lowbit(x) (x &(-x))
using namespace std;
const int INF=0x3f3f3f3f;
const double PI=acos(-1.0);
const double eps=1e-10;
const int M=1e9+7;
const int N=1e5+5;
typedef long long ll;
typedef pair<int,int> PII;
signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int u,v;cin>>u>>v;if(u>v||((v-u)&1)){cout<<-1;return 0;}if(u==v){if(u==0) cout<<0;else cout<<1<<endl<<u;}else if(((u+(v-u)/2)^((v-u)/2))==u)cout<<2<<endl<<u+(v-u)/2<<" "<<(v-u)/2;elsecout<<3<<endl<<u<<" "<<(v-u)/2<<" "<<(v-u)/2;return 0;
}

Codeforces Round #628 (Div. 2) D. Ehab the Xorcist相关推荐

  1. Codeforces Round #628 (Div. 2) F. Ehab‘s Last Theorem dfs树

    传送门 文章目录 题意: 思路: 题意: 给你个nnn个点mmm条边的图,可以选择完成以下两个任务中的一个: (1)(1)(1)找出大小恰好为n\sqrt nn​的一个独立集. (2)(2)(2)找出 ...

  2. Codeforces Round #628 (Div. 2) E. Ehab‘s REAL Number Theory Problem 巧妙的质因子建图

    传送门 文章目录 题意: 思路: 题意: 给你nnn个数,每个数的因子个数不超过777个,选出最少的数使其乘积为平方数. n≤1e5n\le 1e5n≤1e5 思路: 由于因子不超过777个,所以由约 ...

  3. Codeforces Round #628 (Div. 2)C - Ehab and Path-etic MEXs

    C - Ehab and Path-etic MEXs 题目链接 简要描述: 从一个点到另一个点出发,所经过的边组成一个集合, 这些集合中所不包含的最小自然数为mex(u,v),要求使所有的mex(u ...

  4. Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs

    C. Ehab and Path-etic MEXs 题目链接-C. Ehab and Path-etic MEXs Note The tree from the second sample: 题目大 ...

  5. Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs(贪心+思维)

    题目链接 思路:这个题做法貌似很多,我用的就是从叶子节点开始赋值,不过听大佬说的从度大于2的节点赋值也可以.比赛的时候wa test19了,特判一下n=2就行了. #include<bits/s ...

  6. Codeforces Round #628 (Div.2) C.Ehab and Path-etic MEXs(树,思维)

    传送门 题意: 给一颗n个结点的数,然后n-1条边,我们要做的就是把0-n-2,这n-1个数赋给n-1条边,然后使得所有MEX(u,v)最大值最小,输出每条边赋的值 MEX(u,v)是u到v这条路径上 ...

  7. Codeforces Round #649 (Div. 2)C. Ehab and Prefix MEXs[排列的构造]

    C. Ehab and Prefix MEXs 题目大意: 解题思路:题目说保证a数组是非递减的,那么如果某位置a[i]!=a[i−1]a[i]!=a[i-1]a[i]!=a[i−1]那么这个位置ii ...

  8. Codeforces Round #563 (Div. 2)-F. Ehab and the Big Finale

    地址:https://codeforces.com/contest/1174/problem/F 思路:思维+分治 官方题解:https://codeforces.com/blog/entry/673 ...

  9. Codeforces Round #563 (Div. 2) F. Ehab and the Big Finale

    后续: 点分治标程 使用father数组 比使用vis数组优秀(不需要对vis初始化) https://codeforces.com/problemset/problem/1174/F https:/ ...

最新文章

  1. python 13 常用模块 一
  2. 【控制】多智能体系统总结。1. 系统模型。2.控制目标。3.模型转换。
  3. 替换ExpandableListView右边箭头Group Indicator(小图标)
  4. SSM实现个人博客-day04
  5. 征战蓝桥 —— 2014年第五届 —— C/C++A组第4题——史丰收速算
  6. NVIDIA GPU 架构梳理
  7. 33种编程语言为您送上祝福,新年快乐!
  8. Linux静态库和动态库的设计
  9. echart 地图 某个地区_一站式解决echarts实现区域地图
  10. 信息学奥赛一本通 1190:上台阶 | OpenJudge NOI 2.3 3525:上台阶
  11. [Web开发] IE8 网页开发参考文档
  12. 纯CSS3实现流星划过动画
  13. 访问共享文件时切换默认的访问账号
  14. 局域网从另一台电脑copy文件(Linux系统下)
  15. 随机生成一串字符串(java)
  16. 虚拟机安装JDK1.8
  17. C语言正交表测试用例,测试用例设计之正交表法和配对测试法
  18. 概率论 计算机论文,《概率论与数理统计》毕业论文
  19. ItextPdf实现页码
  20. 电脑摄像头未能创建连接服务器,电脑提示未能创建视频预览,请检查设备连接的原因及解决办法...

热门文章

  1. 关闭数据库mysql的命令_mysql关闭数据库命令的方法
  2. FreeRTOS任务调度与任务切换 | FreeRTOS八
  3. SQLServer:SQL语句中加中括号[ ]的含义
  4. 数据埋点方案及注意事项
  5. 经典算法之冒泡排序法与直接选择排序法
  6. jhat命令的html页面,jvm 指令工具 jhat 命令(Java堆分析工具)
  7. 关于WIN2000的入侵,以及安全防御等问题(转)
  8. i5处理器学计算机怎么设置,怎么认识电脑处理器的划分?比如Intel i5、i7?
  9. ARP渗透与攻防(六)之限制网速攻击
  10. html 使table 页面居中,HTML网页中table居中和表格内容居中