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 属 ...
随机推荐
- poj1975
#include<stdio.h> #include<string.h> #define N 100 int map[N][N]; int main() { int t,n,m ...
- CPU问题定位与解决
CPU问题定位基本流程: 性能计数器诊断 主要用到的性能计数器 %Process Time 全实例 (主要用于查看当前服务器的CPU 情况) %Process Time sqlservr (主要用 ...
- 《TCP/IP详解卷1:协议》——第3章 IP:网际协议(转载)
1.引言 IP是TCP/IP协议族中最核心的协议.所有的TCP.UDP.ICMP及IGMP数据都以IP数据报格式传输.IP提供不可靠. 无连接的数据报传送服务. (1)不可靠 它不能保证IP数据报能成 ...
- Free Web Application Firewall相关资料
http://www.freewaf.org/solution/#1 http://baike.soso.com/v60659982.htm
- C. Day at the Beach---cf559
http://codeforces.com/problemset/problem/599/C 题目大意: 有n个城堡的高度 让你最多分成几个块 每个块排过序之后 整体是按照升序来的 分析: ...
- Intersection--poj1410(判断线段与矩形的关系)
http://poj.org/problem?id=1410 题目大意:给你一个线段和矩形的对角两点 如果相交就输出'T' 不想交就是'F' 注意: 1,给的矩形有可能不是左上 右下 所以要先判 ...
- P1918 保龄球 洛谷
https://www.luogu.org/problem/show?pid=1918 题目描述 DL 算缘分算得很烦闷,所以常常到体育馆去打保龄球解闷.因为他保龄球已经打了几十年了,所以技术上不成问 ...
- springboot整合mybatis,freemarker
springboot 整合mybaits,,freemarker pom.xml文件 <?xml version="1.0" encoding="UTF-8&quo ...
- 异常处理(try catch throw)详解(C++)
选择异常处理的编程方法的具体原因如下: 1.把错误处理和真正的工作分开来: 2.代码更易组织,更清晰,复杂的工作任务更容易实现: 3.毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了: 4 ...
- HTML的简单学习
<html>与</html>之间的部分用来描述网页. <body>与</body>之间是页面的可见的内容. <h1>与</h1> ...