zoukankan      html  css  js  c++  java
  • 牛客小百月赛 28 -- 位运算之谜

    链接:https://ac.nowcoder.com/acm/contest/7412/D
    来源:牛客网

    题目描述

    a+ b的值为xa&b的值为y,首先需要判断能否有一组a,b满足当前的情况,如果有,那么求出a xor b,否则输出−1

    输入描述:

    第一行为一个正整数t,表示组数第一行为一个正整数t,表示组数{}t
    (t<=2×105)(t<=2×10^5)t<=2×105

    接下来t行,每一行有两个整数x,y接下来t行,每一行有两个整数x,y{}tx,y
    (0<=x,y<=1×1018)(0<=x,y<=1×10^{18})0<=x,y<=1×1018

    输出描述:

    对于每一组数据,按题意输出a xor b或者-1

    示例1

    输入

    1
    2 1

    输出

    0
    示例2

    输入

    1
    2 2

    输出

    -1
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    
    ll solve(ll x ,ll y)///这个函数真的是太精了,我也是赛后看别人的,我当时用补位的想法一直wa
    {
        if(x < 0) return -1;
        if((x&y)) return -1;////  有冲撞位 , & 出来肯定不是0,所以返回-1 , 我这里说的冲撞位, 是指同1的位,就是冲撞的
        return x;///  符合条件,没有冲撞位,为什么是返回 x , 因为x跟y没有冲撞位,刚好x的1和y的1全都错开了,异或出来也是 x 
    }
    int main()
    {
        int a ;
        ios::sync_with_stdio(false);
        cin.tie(0);
        cout.tie(0);
        cin>>a;
        while(a--){
            ll a , b ;
            ll x,y;
            cin>>x>>y;
            a = y;
            x = x-y*2;
            cout<<solve(x,y)<<endl;
        }
        
        
        return 0;
    }
  • 相关阅读:
    jquery toggle(listenerOdd, listenerEven)
    struts quick start
    hdu 1518 Square (dfs)
    hdu 2544 最短路 (最短路径)
    hdu 1754 I Hate It (线段树)
    hdu 1856 More is better (并查集)
    hdu 1358 Period (KMP)
    hdu 2616 Kill the monster (DFS)
    hdu 2579 Dating with girls(2) (bfs)
    zoj 2110 Tempter of the Bone (dfs)
  • 原文地址:https://www.cnblogs.com/Li-ningning/p/13698049.html
Copyright © 2011-2022 走看看