zoukankan      html  css  js  c++  java
  • CF1325D Ehab the Xorcist

    Jisoo

    首先可以意识到,对于这个数组,他的异或和一定不会超过数值和

    所以说 (u>v) 直接挂了

    然后意识到,区间和的奇偶性和异或和是一样的,(看第一位),这样(u!=v)也不行

    剩下的呢,可以直接构造 (u,frac{v-u}{2},frac{v-u}{2})(已经保证了分子为偶数)

    然后能不能更少呢?看一下能不能把 (frac{u-v}{2})(u)合并就可以了

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define lll long long
    using namespace std;
    lll u,v;
    lll cha;
    int main(){
    	cin>>u>>v;
    	cha=v-u;
    	if(cha<0||(cha&1)){
    		printf("-1");
    		return 0;
    	}
    	if(u==v){
    		if(u==0){
    			printf("0");
    			return 0;
    		}
    		else{
    			printf("1
    %lld",u);
    		}
    		return 0;
    	}
    	lll ha=cha/2;
    	if((ha&u)==0){
    		printf("2
    %lld %lld",ha,ha^u);
    	}else{
    		printf("3
    %lld %lld %lld",ha,ha,u);
    	}
    	return 0;
    }
    
  • 相关阅读:
    Eclipse 的单步调试
    CALayer快速入门
    UITableView快速入门
    iOS程序启动原理
    iOS触摸事件
    UITableViewCell重用和性能优化
    Autolayout
    iOS适配
    NSTimer
    UIScrollView
  • 原文地址:https://www.cnblogs.com/For-Miku/p/15342286.html
Copyright © 2011-2022 走看看