码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #628 (Div. 2) D. Ehab the Xorcist(异或,思维题)

时间:2020-03-15 09:23:57      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:code   amp   pac   int   c++   out   for   include   题意   

题意:

异或后值为 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\n";
        cout<<a<<endl;
    }else if(((a+b)^b)==u){
        cout<<"2\n";
        cout<<a+b<< <<b<<endl;
    }else{
        cout<<"3\n";
        cout<<a<< <<b<< <<b<<endl;
    }
    return 0;
}

 

Codeforces Round #628 (Div. 2) D. Ehab the Xorcist(异或,思维题)

标签:code   amp   pac   int   c++   out   for   include   题意   

原文地址:https://www.cnblogs.com/Kanoon/p/12495687.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!