SPOJ - MAXXOR
2024-08-27 15:36:18
依然是异或运算,这次是限制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.感性上想了想好像这并不影响正确结果,因为无论如何递归,两个数必然是紧挨着的,异或处理越界部分都是无效的
代码不改了~
最新文章
- redirect问题
- centos7.0安装后ifconfig无法使用
- 不注册Activex 直接调用它
- qt 设置
- git 撤销提交的文件
- poj2264 dp+路径
- 【LOI2005】【P1306】河流
- 性能优化工具 MVC Mini Profiler
- SSD的基本架构
- [转]读取assets目录下的数据库文件
- 5、C#基础 - C#的值类型
- paddlepaddle
- python实战案例--银行系统
- 【Android】Android 设置Activity窗体 不显示标题和全屏显示
- Linux下载命令之rpm和yum比较
- py目录
- [转载]Memory Limits for Windows and Windows Server Releases
- Unity3D 入门 游戏开发 Unity3D portal game development
- ie-table不显示边框解决办法
- spring boot学习总结(二)-- 关于@SpringBootApplication的一些基础知识点
热门文章
- TOP命令 详解CPU 查看多个核心的利用率按1
- 关于SO_LINGER选项的使用
- SqlServer------范式小结
- 数字图像处理实验(8):PROJECT 04-04,Highpass Filtering Using a Lowpass Image 标签: 图像处理MATLAB 2017-05-25 0
- 《the art of software testing》第五章
- C#中特殊的string类型
- (转)Asp.net页面生命周期详解任我行(1)-小试牛刀,编写页面代码
- 关于Java异常一段很有意思的代码
- mysql 游标CURSOR
- WINDOWS权限大牛们,请进