或许更好的阅读体验

Ehab the Xorcist

思路

刚看时确实是一脸懵,最怕的就是这种构造题了,然后细想好像能写啊。

判断不可行的条件,只有两种情况:

  • 一、v<uv < uv<u是一定不可能的,一串数的异或值一定小于其数串的和。
  • 二、当u是奇数时,数串中一定存在奇数个奇数,所以整体的和一定是奇数;当u时偶数时,如果存在奇数,那么一定是偶数个奇数,所以整体的和一定是偶数。

到了这里两种不可行的情况就考虑完了, n接下来我们考虑可行的方案:

  • 假设v==uv == uv==u,当v=0v = 0v=0的时候直接输出0,当v!=0v != 0v!=0的时候,就是"1\nv\n",即可。
  • 我们考虑下一种情况的最小串的情况:我们约定temp = (u - v) >> 1,一定可以构造出temp∣temp∣vtemp | temp | vtemp∣temp∣v是符合要求的。但是我们要考虑其值最小,我们想想还有没有可能得到n=2n = 2n=2的情况,当然是存在的,当v&temp==0v \& temp == 0v&temp==0的时候,我们显然可以构造出v+temp∣tempv + temp | tempv+temp∣temp也是符合条件的。

代码

#include <bits/stdc++.h>using namespace std;typedef long long ll;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();} while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x;
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);ios::sync_with_stdio(false);ll u = read(), v = read();if(((u & 1) == (v & 1)) && (v >= u)) {if(u == v) {if(!u)  puts("0");else cout << "1\n" << u << "\n";}else {ll temp = v - u >> 1;if((temp & u) == 0)cout << "2\n" << u + temp << " " << temp << "\n";else cout << "3\n" << u << " " << temp << " " << temp << "\n";}}else    puts("-1");return 0;
}

D:Ehab the Xorcist相关推荐

  1. CF1325D:Ehab the Xorcist(位运算)

    解析 绿题照样不会qwq 一开始的想法是按位分类讨论 辛辛苦苦码了七十行 然后发现当一次性需要进多位的时候就炸了 qwq 关键要考虑到一点:异或就是不进位的加法 所以考虑u和v的差值,设为d 将其二进 ...

  2. Codeforces Round #628 (Div. 2) D. Ehab the Xorcist

    D. Ehab the Xorcist 题目链接-D. Ehab the Xorcist 题目大意 给定两个数字 u 和 v ,构造一个最短的序列a满足a1⊕a2⊕-⊕an=u 并且 a1+a2+-+ ...

  3. CodeForces - 1325D Ehab the Xorcist(构造+异或)

    题目链接:点击查看 题目大意:给出一个 u 和一个 v ,要求构造出最短的一个数组,使得 所有元素异或的结果为 u 所有元素之和的结果为 v 输出构造的结果 题目分析:情况稍微比较复杂的一道构造题,读 ...

  4. codeforces 628.div2

    # Codeforces 628.div2 A. EhAb AnD gCd B. CopyCopyCopyCopyCopy C. Ehab and Path-etic MEXs D. Ehab the ...

  5. 《Enterprise Library深入解析与灵活应用》博文系列汇总

    Enterprise Library是微软P&P部门开发的众多Open source框架中的一个,最新的版本已经出到了4.1.由于接触Enterprise Library已经有很长的一段时间, ...

  6. 大数据技术之_19_Spark学习_07_Spark 性能调优 + 数据倾斜调优 + 运行资源调优 + 程序开发调优 + Shuffle 调优 + GC 调优 + Spark 企业应用案例

    大数据技术之_19_Spark学习_07 第1章 Spark 性能优化 1.1 调优基本原则 1.1.1 基本概念和原则 1.1.2 性能监控方式 1.1.3 调优要点 1.2 数据倾斜优化 1.2. ...

  7. golang大厂面试2

    golang大厂面试 滴滴 写个二分查找 以下是一个简单的二分查找算法的 Go 语言实现: package mainimport "fmt"// 二分查找函数 func binar ...

  8. InstallShield内部库函数

    InstallShield内部库函数 下载资源:点击 1  库函数综述 InstallShield包含300多个内部库函数,用户可在安装脚本中调用它们来创建程序组,操作文件夹,处理目录,监督安装状态, ...

  9. Codeforces 959 E. Mahmoud and Ehab and the xor-MST 思路:找规律题,时间复杂度O(log(n))

    题目: 解题思路 这题就是0,1,2-n-1总共n个数字形成的最小生成树. 我们可以发现,一个数字k与比它小的数字形成的异或值,一定可以取到k与所有正整数形成的异或值的最小值. 要计算n个数字的情况我 ...

最新文章

  1. 数据结构 -- 散列表
  2. Restangular的使用
  3. C Programming Language
  4. Linux第一条指令地址,arm-linux 启动代码分析——stage1 (1)
  5. if和switch以及for
  6. 你真的会玩SQL吗?玩爆你的数据报表之存储过程编写(上)
  7. EC600 QuecPython开发环境搭建、固件下载,最方便的OpenCPU物联网4G通信解决方案
  8. 练习四十八:面向对象执行效率
  9. ubuntu 选择独立显卡或则intelcpu内集成显卡
  10. Drcom校园网认证系列(一) 抓包
  11. 红孩儿编辑器的输入法模块的函数依赖关系图
  12. BitTorrent Tracker 搭建及使用
  13. 记安装win10和deepin双系统的经过(附一些常见问题和解决方案)
  14. BERT预训练模型的使用
  15. 智能网联汽车风险评估方法EVITA
  16. Java Solr:(一)Solr 简介
  17. 自动矢量化编译优化技术(Automatic Vectorization)
  18. python scrapy 管道学习,并拿在行练手爬虫项目
  19. 两个博士读完,学术能力翻一倍?Nature专访三位「双料博士」
  20. CodeForces - 538F--A Heap of Heaps(树状数组+离线)

热门文章

  1. 山西最值得一去的5座古镇,你都去过吗?
  2. 你们都被电视剧版的 《西游记》给骗了!| 今日趣图
  3. 计算机标准符合,计算机专利申请要符合哪些标准
  4. java之static关键词的作用
  5. android动画送礼物,Android仿直播类app赠送礼物功能
  6. mysql数据库的安装和配置文件_MySQL 数据库安装与配置详解
  7. 动态箭头gif图标_别以为只有专业人士才能做出酷炫的#动态跑分图#
  8. java中的console是干什么的_[Java教程]javascript中,你真的会用console吗?
  9. java获取下周一整周的日期_获取Java中日期范围内的所有星期五
  10. 计算机二级链表,计算机二级c语言上机考试——结构体与链表(3页)-原创力文档...