解析

绿题照样不会qwq
一开始的想法是按位分类讨论
辛辛苦苦码了七十行
然后发现当一次性需要进多位的时候就炸了
qwq

关键要考虑到一点:异或就是不进位的加法
所以考虑u和v的差值,设为d
将其二进制分解,然后就是让其在对应的位进位即可
后面就简单了

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=5e5+100;
ll read() {ll x=0,f=1;char c=getchar();while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}while(isdigit(c)) {x=x*10+(c^48);c=getchar();}return x*f;
}int n,m;
ll x,y,mi[70],d;
int a[70],b[70],res[70][4];
int main() {#ifndef ONLINE_JUDGE//freopen("a.in","r",stdin);//freopen("a.out","w",stdout);
#endifx=read(),y=read();if(x>y||(x&1)!=(y&1)){printf("-1\n");return 0;}if(x==y){if(x==0) printf("0\n");else printf("1\n%lld\n",x);return 0;}d=y-x;n=-1;while(x){a[++n]=x&1;x>>=1;}m=-1;while(d){b[++m]=d&1;//printf("m=%d b=%d d=%lld\n",m,b[m],d);d>>=1;}n=max(n,m);mi[0]=1;for(int i=1;i<=n;i++) mi[i]=mi[i-1]<<1;int flag=2;for(int k=0;k<=n;k++){int w=a[k],add=b[k+1];//printf("k=%d w=%d add=%d\n",k,w,add);if(add){if(w){flag=3;res[k][1]=res[k][2]=res[k][3]=1;}else{res[k][1]=1;res[k][2]=1;}}else{res[k][1]=w;res[k][2]=0;}}printf("%d\n",flag);for(int i=1;i<=flag;i++){ll o=0;for(int k=0;k<=n;k++){if(res[k][i]) o|=mi[k];}printf("%lld ",o);}return 0;
}
/*
3
501 502 503
*/

CF1325D:Ehab the Xorcist(位运算)相关推荐

  1. python中不同进制的整数之间可以直接运算_Python 进制转换、位运算

    一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...

  2. python isodd()判断奇偶_位运算(1的个数;2.判断奇偶)

    1. 1的个数 int NumberOf1(intn){int count = 0;while(n) {++count; n=(n-1)&n; } } 同样一个问题,位运算可以提高程序的运行效 ...

  3. python 整数逆位运算_python训练营:注释、运算符、数据类型与位运算

    天学习的内容整理成脑图如下,其中带☆的是需要重点掌握的模糊知识点,需要加强训练和记忆. 二.具体学习内容 2.1 注释 2.1.1 多行注释 2.1.2 长字符串注释 2.2 运算符 2.2.1 算术 ...

  4. 洛谷P1896 [SCOI2005]互不侵犯 状压dp+位运算

    题目链接:https://www.luogu.org/problem/P1896 题意:n*n的格子填数,每个数填放位置的周围(8个)不能有其他的数 n<=9 ,矩形状压 f[i][j][s], ...

  5. mysql 使用位运算

    如果你不知道什么是位运算的话, 那么请你先去看看基础的C语言教程吧. 与运算 a & b  , 或运算 a | b ,  异或运算 a ^ b , 或者 你也可以将 与运算理解为 + 法  例 ...

  6. 位运算+取某一位+java_Java位运算小节

    2019新春支付宝红包技术大揭秘在线峰会将于03-07日开始,点击这里报名届时即可参与大牛互动. 位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算.位运算符可以分为逻辑运算符(包 ...

  7. 进制转换 位运算(包括补码、原码、反码、~0等一些零碎东西一次说清)

    我发现网上关于标题上的内容介绍的都很零碎,因此为了方便查找.也为了本人对这一部分的充分理解,就想着写一篇这样的博客(我分成了几个部分,以便查找): 一.进制转换 让我们先来看看各个进制的定义: 十进制 ...

  8. (转)C语言位运算详解

    地址:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html C语言位运算详解 作者:911 说明:本文参考了http://www2.ts ...

  9. 技术图文:位运算技术在求解算法题中的应用

    背景 前段时间,在知识星球立了一个Flag,这是总结Leetcode刷题的第一篇图文. 在总结这篇图文的时候,顺便把遇到的坑写了两篇辅助的图文,大家可以参考一下: 有符号整型的数据范围为什么负数比正数 ...

  10. HDU 4738 Caocao‘s Bridges(桥、任何位运算一定都要加括号、因为有重边所以用前向星)

    HDU 4738 Caocao's Bridges(桥.任何位运算一定都要加括号.因为有重边所以用前向星) Caocao was defeated by Zhuge Liang and Zhou Yu ...

最新文章

  1. 循环:for..in 与for...of 的区别
  2. C++ Primer 5th笔记(chap 13 拷贝控制)移动构造和移动赋值
  3. linux操作系统使用论文_Linux高性能服务器设计
  4. python彩色螺旋线_解决python彩色螺旋线绘制引发的问题
  5. oracle 600 session,记一次ORA-600[4042]故障的处理
  6. [LeetCode] Convert Sorted Array to Binary Search Tree
  7. GIS的下个十年(Chuck Drinnan, principal, eWAM Associates)
  8. WORD如何将标题编号设置为汉字编号?
  9. springboot细节挖掘(监听器)
  10. java代码内创建mysql索引_点评阿里JAVA手册之MySQL数据库 (建表规约、索引规约、SQL语句、ORM映射)...
  11. Sketch 51 新功能介绍(包含破解版下载)
  12. 开心问答—首个基于迅雷链智能合约上执行的问答游戏
  13. 梨子的功效与作用_梨的9种不为人知的价值
  14. 什么是“高级灰”?哪些地方可以用到它?
  15. ggplot画世界地图
  16. 惠普暗影精灵3代type-c接拓展坞无反应的处理方法
  17. Impala中的invalidate metadata 和refrsh
  18. 原有人陪你颠沛流离 昨日书
  19. 2022高职大数据竞赛0720更新参考实现
  20. js跨域交互(jQuery+php)之jsonp使用心得

热门文章

  1. AI浪潮席卷而来,现在加入还来得及吗?
  2. github怎么隐藏自己的pr记录_记便签的软件哪个好?怎么及时记录自己的想法
  3. python self 值自动改变,在python中对self的理解
  4. pca 累积方差贡献率公式_机器学习数据降维方法:PCA主成分分析
  5. python能做哪些客户端_Python 实现简单的客户端认证
  6. python standardscaler_教你用python一步步解决“维度灾难”
  7. leedcode04:转换字符串的最少操作次数
  8. 《C++ Primer》7.2节练习
  9. 第二讲 命令源码文件
  10. 数据结构与算法--解决问题的方法- 二叉树的的镜像