- #include
- using namespace std;
- using VI = vector<int>;
- using ll = long long;
- using PII = pair
; - const ll mod = 998244353;
- const int N = 1e5 + 10;
-
- signed main(){
- ll u,v;
- cin>>u>>v;
- ll delt = v - u;
- if(delt < 0 || delt % 2 == 1){
- cout<<"-1";
- }else{
- if(u == 0 && v == 0){
- cout<<0;
- return 0;
- }
- if(delt == 0){
- cout<<1<<"\n";
- cout<
- }else if((delt / 2 ^ u ) == v - delt / 2){
- cout<<2<<'\n';
- cout<
2<<" "<<(delt / 2 ^ u ); - }else{
- cout<<3<<'\n';
- cout<
2<<" "<2<<" "< - }
- }
- }
很有意思的一个题
先构造一个 u 然后如果全部构造一个相同的数 1 v - u 次 ,如果v-u是奇数,那么很显然是构造不出来的, 如果v - u 是偶数 那么可以构造两个 (v - u)/ 2
下面暴力讨论 u (v - u)/ 2 (v - u) / 2;
很明显异或值恒为 u
如果 u ^ (v - u) / 2 + (v - u)/ 2 == v 那么就可以合并,只需两个数就可以完成构造
-
相关阅读:
走向云原生数据库 - 使用 Babelfish 加速迁移 SQL Server 的代码实践
超越边界:如何ChatGPT 3.5、GPT-4、DALL·E 3和Midjourney共同重塑创意产业
我司在国内首个通讯行业的Teardown Room在锐捷网络落地
Linux时间管理:命令与脚本的完美结合
国产化精密划片机已得到国内更多厂家青睐
docker使用Inbucket搭建邮件服务器用于接受邮件
matplotlib 绘制双纵坐标轴图像
为K8S集群准备Ceph存储
[NOIP2002 普及组] 产生数
Linux 回顾总结
-
原文地址:https://blog.csdn.net/m0_75125820/article/details/134517081