Claris loves bitwise operations very much, especially XOR, because it has many beautiful features. He gets four positive integers a,b,c,da,b,c,d that satisfies a≤ba≤b and c≤dc≤d. He wants to choose two integers x,yx,y that satisfies a≤x≤ba≤x≤b and c≤y≤dc≤y≤d, and maximize the value of x XOR yx XOR y. But he doesn't know how to do it, so please tell him the maximum value of x XOR yx XOR y. 


Input

The first line contains an integer T(1≤T≤10,000)T(1≤T≤10,000)——The number of the test cases. 
For each test case, the only line contains four integers a,b,c,d(1≤a,b,c,d≤10^18)a,b,c,d(1≤a,b,c,d≤10^18). Between each two adjacent integers there is a white space separated. 
Output

For each test case, the only line contains a integer that is the maximum value of x XOR yx XOR y. 
Sample Input

2
1 2 3 4
5 7 13 15

Sample Output

6
11

题意:现在对对于这个题,求a<=X<=b,c<=Y<=d,使XxorY最大(不同位数最多)。

我们求二进制是怎么求的呢:先看看二进制的每一位代表多大:.......32 16 8 4 2 1

假如n=10

.....

32>n ,不要。

16>n,不要。

8<=n,要,然后n=n-8=2。

4>2,不要。

2<=2,要,n=n-2=0;

0>1,不要。

不要是一位是0,要的一位是1,则10(10)=..001010(2),也就是从高位向低位求,能取则取

题意:现在对对于这个题,求a<=x<=b,c<=y<=d,使x^y最大(不同位数最多)。

我们来试一试搜索:数量级差不多再1<<60左右,我们设62位为最高位。

对于x,第i位有0或1的选择。对于y,第i位也有0或1的选择,则搜索的数量级位(2^120),爆炸。但是由于取1可能会有x>b,取0会有x<a,取什么对x是有限定的,即是搜索的减枝,这使得数量级不会太大。所以我们开始搜索,当然,搜索的方向是对于第i位,二者尽量取不同,即在满足[a,b],[c,d]的范围内一个取0,一个取1。如果不行,则二者同取1或取0(效果一样,就当a,b,c,d同时减去0或者同时减去1<<i)。————>然后发现这个搜索不需要回溯,根本就是个贪心。

如何给予限定:假设x在第i+1位取得t1,在第i位,如果t1+(1LL<<i)>b则不能取1,如果t1+(1LL<<i)-1<a,则不能取0。(iLL<<i)-1表示第i位不取,1-(i-1)都取。

细节:int  1<<i ; long long  1LL<<i

HDU5661
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cmath>
using namespace std;
long long a,b,c,d,x,y,t1,t2,ans;
int main()
{
long long i,j,T;
scanf("%lld",&T);
while(T--){
ans=x=y=;
scanf("%lld%lld%lld%lld",&a,&b,&c,&d);
for(i=;i>=;i--){
t1=x+(1LL<<i);t2=y+(1LL<<i);
if(t1<=b&&t2->=c) {
x=t1;ans+=(1LL<<i);
}
else if(t2<=d&&t1->=a){
y=t2;ans+=(1LL<<i);
}
else if(t1->=a&&t2->=c){
continue;
}
else if(t1<=b&&t2<=d){
x=t1;y=t2;
}
}
printf("%lld\n",ans);
}
return ;
}

HDU5661 Claris and XOR的更多相关文章

  1. BC之Claris and XOR

    http://acm.hdu.edu.cn/showproblem.php?pid=5661 Claris and XOR Time Limit: 2000/1000 MS (Java/Others) ...

  2. hdu 5661 Claris and XOR

    Claris and XOR Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  3. Claris and XOR(模拟)

    Claris and XOR Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  4. Claris and XOR

    Problem Description Claris loves bitwise operations very much, especially XOR, because it has many b ...

  5. HDU 5661 Claris and XOR 贪心

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5661 bc(中文):http://bestcoder.hdu.edu.cn/contests ...

  6. 【整理】XOR:从陌生到头晕

    一:解决XOR常用的方法: 在vjudge上面输入关键词xor,然后按照顺序刷了一些题. 然后大概悟出了一些的的套路: 常用的有贪心,主要是利用二进制的一些性质,即贪心最大值的尽量高位取1. 然后有前 ...

  7. bzoj4589 FWT xor版本

    4589: Hard Nim Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 865  Solved: 484[Submit][Status][Disc ...

  8. [LeetCode] Maximum XOR of Two Numbers in an Array 数组中异或值最大的两个数字

    Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. Find the maximum re ...

  9. 二分+DP+Trie HDOJ 5715 XOR 游戏

    题目链接 XOR 游戏 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

随机推荐

  1. kill -3 导出 thread dump

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt361 有些Java应用服务器是在控制台上运行,如Weblogic,为了方便获 ...

  2. C# 反向生成工具(DAL BLL Modle)

    VS2015  ADO.NET无果后果断~! 动软生成:http://pan.baidu.com/s/1gfIf0ZL

  3. vue-webpack-boilerplate分析

    看完这篇文章你会学到通过vue-cli创建的项目,执行npm run dev后都发生了什么事情以及执行流程. 在创建vue项目时,官方推荐使用vue-cli这个命令行工具. # 全局安装 vue-cl ...

  4. java 多线程(0) Java线程

    线程 线程是系统调度的基本单元,每当创建一个进程时,会有许多的线程,也叫轻量级进程,在一个进程中拥有多个线程,各自都有自己的计数器,堆和局部变量属性,并且能够分享内存变量. 为什么要使用多线程  1. ...

  5. 【beta】阶段 第七次 Scrum Meeting

    每日任务 1.本次会议为第七次 Meeting会议: 2.本次会议在下午14:45,课间休息时间在陆大楼召开,召开本次会议为10分钟. 一.今日站立式会议照片 二.每个人的工作 (有work item ...

  6. We Talk -- 团队博客

    WeTalk --在线群聊程序 团队博客 服务器一直在运行,使用客户端可直接登入使用.(做得很粗糙...) 客户端下载(java环境下直接运行) 0.项目介绍 现在我们网上交流离不开微信和QQ,当然在 ...

  7. hadoop-2.6.0源码编译问题汇总

    在上一篇文章中,介绍了hadoop-2.6.0源码编译的一般流程,因个人计算机环境的不同, 编译过程中难免会出现一些错误,下面是我编译过程中遇到的错误. 列举出来并附上我解决此错误的方法,希望对大家有 ...

  8. [js高手之路]Node.js模板引擎教程-jade速学与实战3-mixin

    强大的mixin mixin类似于函数的功能,可以达到模块复用的效果 mixin show: 定义一个类似函数的功能,名字叫show,里面的就是他的内容 +show: 调用show,每调用一次执行一次 ...

  9. 一、React Native 搭建开发环境(1)(Mac OS - IOS项目)

    React Native是Facebook推出的一个开发IOS和安卓APP的技术.至于更多的详情,这里不再描述,大家可以自行百度它的定义. 目的: 由于我想在一台电脑上同时开发IOS和Android两 ...

  10. Spring - Bean的概念及其基础配置

    概述 bean说白了就是一个普通的java类的实例,我们在bean中写一些我们的业务逻辑,这些实例由Sping IoC容器管理着.在web工程中的spring配置文件中,我们用<bean/> ...