276D
贪心
想了一会觉得没什么很好的方法,看了题解
我们枚举每个二进制位,对于l,r如果这位相同就异或到答案里,否则停止,这里肯定是r比l大,也就是r这位是1而l是0,那么我们就让r这位选1,l选0,然后把l从这位-1直到0每位全部赋成1,这样就是答案
为什么是对的呢?考虑如果这位不同,那么之前的位全部都是相同的,又因为l<=r,所以肯定这位l是0,r是1,所以我们把r后面所有位改成0也是符合的,假设现在的r=x,因为这样x的肯定是<=r,并且因为l这位是0,而之前所有位相等,所以x肯定>l,那么也就是说选的x是符合的,那么另外的一个y呢?y之前所有位和x是相同的,但是这位是0,有因为r这位是1,那么我们把后面所有位赋成1还是<r的,有因为之前所有位和l是一样的,把后面赋成1肯定是>=l的。
然后考虑如果这位相同,为什么我们不能改掉两个数中某一个的这位呢?如果这两位l和r都是0,那么我们把一个数这位赋成1,因为之前相同,那么现在这个数就>r了,不满足,如果两位都是1,因为之前所有位和l相同,那么改成0后就<l,也不满足。
感觉这道题挺巧妙的,只用不到十行就解决了问题,然而想法还是比较巧妙。看来异或问题不仅可以用trie,线性基取最大值,有时得仔细结合题目分析就能得出简单的结论。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll l, r, ans;
int main()
{
cin >> l >> r;
for(int i = ; i >= ; --i)
{
ans ^= (l & (1ll << i)) ^ (r & (1ll << i));
if((l & (1ll << i)) != (r & (1ll << i)))
{
for(int j = i - ; j >= ; --j) ans ^= (1ll << j);
break;
}
}
cout << ans;
return ;
}
276D的更多相关文章
- Codeforces 276D Little Girl and Maximum XOR
题意:给范围l,r选两个数亦或最大是多少. 思路:找到第一个l和r二进制下不相同的位置i,然后答案就是2^(i+1)-1,因为一个取0一个取1之后,后面的位置全部选1和全部选0,就是这样:011111 ...
- CodeForces 276D – Little Girl and Maximum XOR 贪心
整整10个月后第二次搞这个问题才搞懂........第一次还是太随意了. 解题思路: 经过打表可得规律答案要么是0 要么是2的N次 - 1 要得到最大的XOR值,其值一定是2的N次 - 1 即在 l ...
- Codeforces 276D
题目链接 这题真的体现了自己思维的不足,考虑问题只是考虑他的特殊性,却不能总结出它的一般性规律. 对于这题, 如果L == R , 那么结果为0. 否则, 我们只需要找到最高的某一位 (二进制数中的某 ...
- BOOST.Asio——Tutorial
=================================版权声明================================= 版权声明:原创文章 谢绝转载 啥说的,鄙视那些无视版权随 ...
- Smart210学习记录------块设备
转自:http://bbs.chinaunix.net/thread-2017377-1-1.html 本章的目的用尽可能最简单的方法写出一个能用的块设备驱动.所谓的能用,是指我们可以对这个驱动生成的 ...
- java基础学习总结——异常处理
一.异常的概念 异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误.出现错误时观察错误的名字和行号最为重要.
- java基础—异常处理
一.异常的概念 异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误.出现错误时观察错误的名字和行号最为重要.
- CSS中content属性的妙用
前言 本文讲解CSS中使用频率并不高的content属性,通过多个实用的案例,带你由浅入深的掌握content的用法,让代码变得更加简洁.高效. 定义 W3school中这样定义: content 属 ...
随机推荐
- python之-- 异常
异常处理: 语法:try: codeexcept (KeyError..可以写多个) as e: error为抓取的多个错误提示,e为错误信息 print(e) # 打印错误信息except (Ind ...
- The Bottom of a Graph
poj——The Bottom of a Graph Time Limit: 3000MS Memory Limit: 65536K ...
- Java描述符(修饰符)的类型
以下内容引用自http://wiki.jikexueyuan.com/project/java/modifier-types.html: 描述符(修饰符)是添加到那些定义中来改变他们的意思的关键词.J ...
- 关于MSSQL的decimal(numeric)、money、float的使用以及区别
decimal(numeric).money.float(real) 都是MSSQL中的浮点类型的数据类型. 按存储的范围进行排序 float(real) decimal(numeric) money ...
- 【Nginx】负载均衡
本文介绍的负载均衡是针对的客户端请求在多个Nginx进程之间的均衡.注意与客户端请求在多个后端服务器之间的均衡相区别. 负载均衡问题的产生 在nginx中,建立连接的时候,会设计负载均衡问题.在多个子 ...
- 【scrapy】Item及Spider
Items Item objects are simple containers used to collect the scraped data.They provide a dictionary- ...
- HashMap、HashTable、TreeMap 深入分析及源代码解析
在Java的集合中Map接口的实现实例中用的比較多的就是HashMap.今天我们一起来学学HashMap,顺便学学和他有关联的HashTable.TreeMap 在写文章的时候各种问题搞得我有点迷糊尤 ...
- vue 自定义报警组件
1.自定义报警组件 Alarm.vue <!-- 报警 组件 --> <template> <div class="alarm"> <!- ...
- Android自己定义之TextView跑马灯的监听
TextView都有跑马灯的效果,假设说让你去监听跑马灯效果的运行.我认为这个需求有点二了.可是也要实现. 思路: 1.自己定义View 继承TextView 这样的方法过于麻烦,仅仅是监听一个 ...
- Tomcat和Jetty对WebSocket的支持
公司项目须要,了解了下眼下几种支持WebSocket的框架.曾经用jWebSocket做过一些项目.相对来说.改jWebSocket的源代码略复杂,也不是一天两天能搞定的. 一调研才发现,如今非常多主 ...