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+…+an=v
解题思路
需要特判的情况:
- u>v:不存在
- u,v奇偶性不同:不存在
- u=v=0:直接输出0
- 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相关推荐
- Codeforces Round #628 (Div. 2) F. Ehab‘s Last Theorem dfs树
传送门 文章目录 题意: 思路: 题意: 给你个nnn个点mmm条边的图,可以选择完成以下两个任务中的一个: (1)(1)(1)找出大小恰好为n\sqrt nn的一个独立集. (2)(2)(2)找出 ...
- Codeforces Round #628 (Div. 2) E. Ehab‘s REAL Number Theory Problem 巧妙的质因子建图
传送门 文章目录 题意: 思路: 题意: 给你nnn个数,每个数的因子个数不超过777个,选出最少的数使其乘积为平方数. n≤1e5n\le 1e5n≤1e5 思路: 由于因子不超过777个,所以由约 ...
- Codeforces Round #628 (Div. 2)C - Ehab and Path-etic MEXs
C - Ehab and Path-etic MEXs 题目链接 简要描述: 从一个点到另一个点出发,所经过的边组成一个集合, 这些集合中所不包含的最小自然数为mex(u,v),要求使所有的mex(u ...
- 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: 题目大 ...
- Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs(贪心+思维)
题目链接 思路:这个题做法貌似很多,我用的就是从叶子节点开始赋值,不过听大佬说的从度大于2的节点赋值也可以.比赛的时候wa test19了,特判一下n=2就行了. #include<bits/s ...
- 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这条路径上 ...
- 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 ...
- Codeforces Round #563 (Div. 2)-F. Ehab and the Big Finale
地址:https://codeforces.com/contest/1174/problem/F 思路:思维+分治 官方题解:https://codeforces.com/blog/entry/673 ...
- Codeforces Round #563 (Div. 2) F. Ehab and the Big Finale
后续: 点分治标程 使用father数组 比使用vis数组优秀(不需要对vis初始化) https://codeforces.com/problemset/problem/1174/F https:/ ...
最新文章
- python 13 常用模块 一
- 【控制】多智能体系统总结。1. 系统模型。2.控制目标。3.模型转换。
- 替换ExpandableListView右边箭头Group Indicator(小图标)
- SSM实现个人博客-day04
- 征战蓝桥 —— 2014年第五届 —— C/C++A组第4题——史丰收速算
- NVIDIA GPU 架构梳理
- 33种编程语言为您送上祝福,新年快乐!
- Linux静态库和动态库的设计
- echart 地图 某个地区_一站式解决echarts实现区域地图
- 信息学奥赛一本通 1190:上台阶 | OpenJudge NOI 2.3 3525:上台阶
- [Web开发] IE8 网页开发参考文档
- 纯CSS3实现流星划过动画
- 访问共享文件时切换默认的访问账号
- 局域网从另一台电脑copy文件(Linux系统下)
- 随机生成一串字符串(java)
- 虚拟机安装JDK1.8
- C语言正交表测试用例,测试用例设计之正交表法和配对测试法
- 概率论 计算机论文,《概率论与数理统计》毕业论文
- ItextPdf实现页码
- 电脑摄像头未能创建连接服务器,电脑提示未能创建视频预览,请检查设备连接的原因及解决办法...
热门文章
- 关闭数据库mysql的命令_mysql关闭数据库命令的方法
- FreeRTOS任务调度与任务切换 | FreeRTOS八
- SQLServer:SQL语句中加中括号[ ]的含义
- 数据埋点方案及注意事项
- 经典算法之冒泡排序法与直接选择排序法
- jhat命令的html页面,jvm 指令工具 jhat 命令(Java堆分析工具)
- 关于WIN2000的入侵,以及安全防御等问题(转)
- i5处理器学计算机怎么设置,怎么认识电脑处理器的划分?比如Intel i5、i7?
- ARP渗透与攻防(六)之限制网速攻击
- html 使table 页面居中,HTML网页中table居中和表格内容居中