Codeforces Round #628 (Div. 2) D. Ehab the Xorcist(异或,思维题)
题意:
寻找异或后值为 u,相加后和为 v 的最短数组。
思路:
异或得 u ,则 v 至少应大于等于 u ,且多出来的部分可以等分为两份相消。
即初始数组为 u , (v-u)/2 , (v-u)/2,之后即为特判或判断是否可以合并。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll; int main()
{
ll u,v;cin>>u>>v; ll a=(v-u)/2; if(v<u||(v-u)%2)
cout<<"-1";
else if(u==0)
cout<<"0";
else if((u+a+a)==u)
cout<<"1"<<'\n'<<u;
else if(((u+a)^a)==u)//不会有(u^(a+a))==u,因为此时a+a!=0
cout<<"2"<<'\n'<<u+a<<' '<<a;
else
cout<<"3"<<'\n'<<u<<' '<<a<<' '<<a; return 0;
}
Codeforces Round #628 (Div. 2) D. Ehab the Xorcist(异或,思维题)的更多相关文章
- Codeforces Round #628 (Div. 2) C.	Ehab and Path-etic MEXs(树,思维题)
		
题意: 给有 n 个点的树的 n-1 条边从 0 到 n-2 编号,使得任意两点路径中未出现的最小数最小的方案. 思路: 先给所有度为 1 的点所在边编号,之后其他点可以随意编排. #include ...
 - Codeforces Round #628 (Div. 2) A. EhAb AnD gCd(LCM & GCD)
		
题意: GCD(a,b) + LCM(a,b) = n,已知 n ,求 a,b. 思路: 设 gcd(a, b) = k, a = xk, b = yk , k + ab / k = n xy = n ...
 - Codeforces Round #529 (Div. 3)   E. Almost Regular Bracket Sequence (思维)
		
Codeforces Round #529 (Div. 3) 题目传送门 题意: 给你由左右括号组成的字符串,问你有多少处括号翻转过来是合法的序列 思路: 这么考虑: 如果是左括号 1)整个序列左括号 ...
 - Codeforces Round #628 (Div. 2)
		
1325A - EhAb AnD gCd 题意:随意找两个数是他们的最大公约数 GCD 与最小公倍数 LCM 之和为所给定的值. 思路:找一下规律 ,假设所给的 数位n, 那么我们将n分成 1 ,n- ...
 - Codeforces Round #628 (Div. 2)  题解
		
人闲桂花落,夜静春山空. 月出惊山鸟,时鸣春涧中.--王维 A. EhAb AnD gCd You are given a positive integer x. Find any such 2 po ...
 - Codeforces Round #703 (Div. 2)__ B. Eastern Exhibition__ 纯纯的思维
		
原题链接https://codeforces.com/contest/1486/problem/B 题目 解题思路 这是个思维题, 算是货仓选址的变式, 想要到达各个点距离最小,我们的目标可以化为先 ...
 - Codeforces Round #525 (Div. 2) F. Ehab and a weird weight formula
		
F. Ehab and a weird weight formula 题目链接:https://codeforces.com/contest/1088/problem/F 题意: 给出一颗点有权值的树 ...
 - Codeforces Round #525 (Div. 2)E. Ehab and a component choosing problem
		
E. Ehab and a component choosing problem 题目链接:https://codeforces.com/contest/1088/problem/E 题意: 给出一个 ...
 - Codeforces Round #525 (Div. 2)D. Ehab and another another xor problem
		
D. Ehab and another another xor problem 题目链接:https://codeforces.com/contest/1088/problem/D Descripti ...
 
随机推荐
- 获取微信Token值
			
/** * 获取Token值 * @param $corpid * @param $corpsecret * @return mixed * @author 宁佳兵 <meilijing.nin ...
 - 为什么 TCP 连接的建立需要三次握手
			
TCP 的通讯双方需要发送 3 个包(即:三次握手)才能建立连接,本文将通过 3 副图来解释为什么需要 3 次握手才能建立连接. TCP 连接的建立过程本质是通信双方确认自己和对方都具有通信能力的过程 ...
 - ICMP协议概述
			
• ICMP是三层协议,和IP.ARP.ICMP同属三层 • IP协议中的6是代表上层的TCP协议,17代表UDP协议,1代表同层的ICMP协议 • ICMP协议主要用来探测 ...
 - Java微服务 vs Go微服务,究竟谁更强!?
			
前言 Java微服务能像Go微服务一样快吗? 这是我最近一直在思索地一个问题. 去年8月份的the Oracle Groundbreakers Tour 2020 LATAM大会上,Mark Nels ...
 - 坐上JDK8时间SDK的小船,带你遨游UNIX时间戳与时区的小太空~
			
原文链接:坐上JDK8时间SDK的小船,带你遨游UNIX时间戳与时区的小太空- 一.背景: 最近有一个关于店铺数据实时分析的需求,需要实时统计店铺当天的数据:例如访客数,浏览量.商品排行榜等.由于店铺 ...
 - 【Flutter】可滚动组件简介
			
前言 当组件内容超过当前显示视口(ViewPort)时,如果没有特殊处理,Flutter则会提示Overflow错误.为此,Flutter提供了多种可滚动组件(Scrollable Widget)用于 ...
 - Linux调整lvm逻辑分区大小
			
转载自:https://www.cnblogs.com/kevingrace/p/5825963.html 个人记录一下 Linux下对lvm逻辑卷分区大小的调整(针对xfs和ext4不同文件系 ...
 - linux之平均负载(学习笔记非原创)
			
什么是平均负载 [root@111 ~]# uptime 11:03:33 up 149 days, 17:34, 1 user, load average: 0.08, 0.05, 0.01 最后三 ...
 - 【Oracle】更改oracle中的用户名称
			
修改oracle中的用户名,要需要修改oracle基表中的相关内容, 1.查看user#, select user#,name from user$ s where s.name='用户修改前的'; ...
 - C#数组的 Length 和 Count()
			
C#数组的 Length 和 Count() C# 数组中 Length 表示数组项的个数,是个属性.而 Count() 也是表示项的个数,是个方法,它的值和 Length 一样.但实际上严格地说, ...