Codeforces Round #628 (Div. 2) D. Ehab the Xorcist(异或,思维题)
Posted kanoon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #628 (Div. 2) D. Ehab the Xorcist(异或,思维题)相关的知识,希望对你有一定的参考价值。
题意:
异或后值为 u,相加后和为 v 的最短序列。
思路:
由异或性质得初始序列为 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=u,b=(v-u)/2; if(u==0&&v==0){ cout<<"0"; }else if(v<u||(v-u)%2){ cout<<"-1"; }else if(u==v){ cout<<"1 "; cout<<a<<endl; }else if(((a+b)^b)==u){ cout<<"2 "; cout<<a+b<<‘ ‘<<b<<endl; }else{ cout<<"3 "; cout<<a<<‘ ‘<<b<<‘ ‘<<b<<endl; } return 0; }
以上是关于Codeforces Round #628 (Div. 2) D. Ehab the Xorcist(异或,思维题)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #628 (Div. 2) B.CopyCopyCopyCopyCopy(Set)
Codeforces Round #628 (Div. 2) C
Codeforces Round #628 (Div. 2) F——Ehab's Last Theorem dfs
Codeforces Round #628 (Div. 2) D. Ehab the Xorcist(异或,思维题)
Codeforces Round #628 (Div. 2) C.Ehab and Path-etic MEXs(图论,思维题)