Codeforces 76D - Plus and xor - [加、且和异或]
蛮有意思的一个关于二进制的题,建立在plus和xor的关系上的题,
由于 ,那么 。
因此 ,然后同时根据 这两个条件,在二进制下一位一位的去分类讨论一下 和 在那以为到底是 还是 。
记 和 的每一位分别是 和 ,讨论:
① ,
② ,这俩是固定的,没得选。
③ ,
④ ,这俩显然选④,让X更小。
#include<bits/stdc++.h> using namespace std; typedef unsigned long long ull; int main() { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); ull a, b; cin >> a >> b; if(a < b) // A will not be less than B { cout << "-1"; return 0; } ull delta = a - b; if((delta & 1) != 0) // if A-B is not even number { cout << "-1"; return 0; } ull x = 0, y = 0; delta >>= 1; // now, delta = x and y ull k = 1; // k = 1, 10, 100, 1000, ... while(true) { ull and_lp = delta & 1, xor_lp = b & 1; // get last place // cout << xor_lp << " " << and_lp << endl; if(xor_lp == 0 && and_lp == 1) x |= k, y |= k; else if(xor_lp == 0 && and_lp == 0) ; // do nothing else if(xor_lp == 1 && and_lp == 0) y |= k; else { cout << "-1"; return 0; } if(delta == 0 && b == 0) break; else delta >>= 1, b >>= 1, k <<= 1; } cout << x << " " << y; return 0; }
转载请注明出处:https://dilthey.cnblogs.com/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术