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(图论,思维题)

二进制构造Codeforces Round #628 (Div. 2) D. Ehab the Xorcist