Description

给定一个范围[a,b]  (0<=a<b<=10^18) 求出该范围内二进制中1的个数最多的数,如果存在多个答案,输出最小的那个数

Input

输入数据有多组,每组数据输入两个整数a,b,表示区间[a, b]。

Output

输出该区间内二进制的1最多的整数,如果有多个数二进制1的个数相同,输出最小的那个数。

Sample Input

4 8
7 14

Sample Output

7
7

思路:

区间[a,b],如果a==b,输出a, 先把a,b化为二进制数,每位分别保存到数组中,如果a的二进制位数小于b的位数,那么直接输出 2^(b的位数-1) -1(此处如果b等于 2^b的位数 -1 就直接输出b) ,也就是二进制数比b少一位且所有位均为1,如果a的位数等于b的位数,要求最小的符合题意的数,尝试着从a的二进制低位开始,如果是0,将其变为1,看是否小于等于b,如果是,继续操作,如果不是,退出。

要注意10^18 <2^62 所以要存这么大是数组才行 2^63超过longlong范围

#include<iostream>
#include<cstdio>
using namespace std;
#define ll long long
ll n,m;
int nn[65],mm[65];
ll p[65];
void inti()
{p[0]=1;for(int i=1;i<63;i++)p[i]=p[i-1]<<1;
}
int getbit(ll x,int a[])
{int s=0;while(x){a[s++]=x%2;x/=2;}return s;
}
int main()
{inti();while(~scanf("%lld%lld",&n,&m)){int lenn=getbit(n,nn);int lenm=getbit(m,mm);if(lenn<lenm){// input 3 7 output 7if(m==p[lenm]-1)printf("%lld\n",m);else printf("%lld\n",p[lenm-1]-1);continue;}//   printf("lenn=%d\n",lenn);for(int i=0;i<lenn;i++){if(nn[i]==0){//printf("** %lld %d\n",n,i);if(n+p[i]<=m)n+=p[i];else break;}}printf("%lld\n",n);}return 0;
}


转载于:https://www.cnblogs.com/kylehz/p/4324812.html

(None resource)-Binary system相关推荐

  1. a good resource gathering system from sustech

    https://sustech-application.github.io/2020-Fall/#/

  2. Java-利用Spring提供的Resource/ResourceLoader接口操作资源文件

    背景 资源访问接口 主要方法 主要实现类 例子 WritableResource ClassPathResource ServletContextResource 对资源文件编码 资源加载 资源地址表 ...

  3. 北邮OJ 1010. 16校赛-Binary Strings

    时间限制 5000 ms 内存限制 65536 KB 题目描述 One day, the teacher asked Weishen to judge whether a binary string ...

  4. maven工程下 读取resource下配置文件

    在maven工程中,我们会将配置文件放到,src/main/resources   下面,例如 我们需要确认resource 下的文件 编译之后存放的位置 它编译的路径直接位于classes下面,这个 ...

  5. Oracle Resource Manager 概述

    官网的链接说明 About Oracle Database Resource Manager http://docs.oracle.com/cd/E11882_01/server.112/e25494 ...

  6. 外星人图像和外星人太空船_卫星图像:来自太空的见解

    外星人图像和外星人太空船 By Christophe Restif & Avi Hoffman, Senior Software Engineers, Crisis Response 危机应对 ...

  7. 计算机常用英语单词对照

    第一部分.计算机算法常用术语中英对照 Data Structures 基本数据结构 Dictionaries 字典 Priority Queues 堆 Graph Data Structures 图 ...

  8. 计算机系统概论基本知识

    目录 chapter0 chapter1 binary system chapter2 chapter3 chapter4 chapter5 Pseudo-Code (or Program Desig ...

  9. Flume+Kafka+Storm+Redis构建大数据实时处理系统:实时统计网站PV、UV+展示

    http://blog.51cto.com/xpleaf/2104160?cid=704690 1 大数据处理的常用方法 前面在我的另一篇文章中<大数据采集.清洗.处理:使用MapReduce进 ...

最新文章

  1. php使用curl可以get 模拟post
  2. 数据结构经典书籍--数据结构与算法分析
  3. 17. Letter Combinations of a Phone Number
  4. Ardino基础教程 9_数字电压表
  5. python 如何获取当前时间并转换为年月日
  6. 测试Rockey 4 Smart加密锁的C语言代码
  7. Nginx设置TCP上游服务器的SSL配置
  8. Lync Server 2010 权限相关
  9. 2005年7月19日
  10. 解读汽车机械工作原理GIF图 懂得三个算你牛!
  11. 【网络安全工程师面试合集】—社会工程学到底是什么?
  12. Outline浏览加速-实操分享今日随笔
  13. 第十三届蓝桥杯省赛 python B组复盘
  14. js获取内网ip地址,操作系统,浏览器版本等信息
  15. 案例三:淘宝用户行为分析
  16. 清华大学课题组联合美团研发无人机声波定位技术获ACM SenSys顶会大奖
  17. Linux内核的删除
  18. VerA 0.15 by PE_kill
  19. 编写CSDN博客,如何去掉插入的图片上的水印
  20. WGS84坐标 火星坐标 BD09坐标转换

热门文章

  1. python排名上升_TIOBE:2019年7月全球编程语言排行 Python热度继续上升
  2. php div行内块元素,行内元素与块级元素的区别详细介绍
  3. matlab二元方程组,用matlab解一个二元方程组,会的进,得到解再回答
  4. JavaScript 函数定义+内置函数使用+array对象+object类型
  5. erp开发和java开发区别_Java程序员求职必学:Spring boot学习指南!
  6. sql查找一个范围的值_销售需求丨查找问题
  7. mix2s android p功能,已升安卓P!网友:MIX2S才是亲儿子
  8. linux 下nc-verilog 仿真环境搭建,Cadence NC Verilog仿真教程
  9. python鼠标移动轨迹_鼠标的另一种选择,肯辛通轨迹球能否改变固有的使用习惯?...
  10. 服务器故障英文邮件,服务器一般故障排除(国外英文资料).doc