依然是异或运算,这次是限制L,R范围内挑2个数使其异或值最大

如果r最高为是pos,那最理想状态当然是(1ll<<pos+1)-1

只有2个数如果凑近最理想的状态?直接找紧挨着的一个就好,这样符合高位尽可能高

/*H E A D*/
int main(){
ll l,r,pos,pos2;
while(cin>>l>>r){
if(l>r) swap(l,r);
if(l==r){
cout<<0<<endl;
continue;
}
rrep(i,63,0){
if((r>>i)&1){
pos=i;
break;
}
}
cout<<((1ll<<pos)^((1ll<<pos)-1))<<endl;
}
return 0;
}

UPD.昨晚写的太匆忙没考虑L足够接近但不等于R时的情况,

如果R=2i+j,L=2i+k,(2i>j>k>0),无论如何异或,2i是无效的,这时的对比就相当于j到k的区间中寻找异或最大的两个数

所以这时需要进一步的递归或迭代(L,R减去2^i就好),这一定有解

这题可能数据太弱了所以我前面的代码轻松过了

UPDD.感性上想了想好像这并不影响正确结果,因为无论如何递归,两个数必然是紧挨着的,异或处理越界部分都是无效的

代码不改了~

最新文章

  1. redirect问题
  2. centos7.0安装后ifconfig无法使用
  3. 不注册Activex 直接调用它
  4. qt 设置
  5. git 撤销提交的文件
  6. poj2264 dp+路径
  7. 【LOI2005】【P1306】河流
  8. 性能优化工具 MVC Mini Profiler
  9. SSD的基本架构
  10. [转]读取assets目录下的数据库文件
  11. 5、C#基础 - C#的值类型
  12. paddlepaddle
  13. python实战案例--银行系统
  14. 【Android】Android 设置Activity窗体 不显示标题和全屏显示
  15. Linux下载命令之rpm和yum比较
  16. py目录
  17. [转载]Memory Limits for Windows and Windows Server Releases
  18. Unity3D 入门 游戏开发 Unity3D portal game development
  19. ie-table不显示边框解决办法
  20. spring boot学习总结(二)-- 关于@SpringBootApplication的一些基础知识点

热门文章

  1. TOP命令 详解CPU 查看多个核心的利用率按1
  2. 关于SO_LINGER选项的使用
  3. SqlServer------范式小结
  4. 数字图像处理实验(8):PROJECT 04-04,Highpass Filtering Using a Lowpass Image 标签: 图像处理MATLAB 2017-05-25 0
  5. 《the art of software testing》第五章
  6. C#中特殊的string类型
  7. (转)Asp.net页面生命周期详解任我行(1)-小试牛刀,编写页面代码
  8. 关于Java异常一段很有意思的代码
  9. mysql 游标CURSOR
  10. WINDOWS权限大牛们,请进