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. 一起学Windows phone 7开发(四. DeepZoom)
  2. (GIT)代码分支管理策略
  3. 廊田镇楼下村定点帮扶-农业大健康·李喜贵:功能性农业深加工
  4. 了解这些设计原则,助你打造最佳用户体验
  5. Java的内存--存储
  6. Linux入门之VIM快捷使用
  7. 7-3 复数四则运算 (15 分)
  8. InfoGAN详解与实现(采用tensorflow2.x实现)
  9. printf 输出对齐
  10. xp计算机连接不上网络打印机驱动,windows xp系统打印机共享提示连接失败的解决方法...
  11. 阿里副总裁玄难:藏经阁计划研发大规模知识构建技术首次披露
  12. 5部靠身材和脸蛋撑起了整部电影,女主光环太刺眼,部部是经典!
  13. Dlang如何禁用垃圾回收(GC)
  14. 手机pdf文件转语音_PDF文件怎么转EXCEL?教你一款超实用的迅捷PDF转换器
  15. 心理测评软件的心理测试法的优缺点,心理测试的优缺点
  16. Android脑图--Android动画
  17. 天翎携手群晖助力电商行业文档管理
  18. dlink网络打印服务器如何修改ip地址,DLINK路由器如何更改登陆IP地址
  19. CreateJS 指南
  20. 满分作文生成器网页版

热门文章

  1. cadence自动生成铺铜_干货 | 国内铜湿法冶金工艺现状分析
  2. css button 四种状态,css中按钮的四种状态
  3. 画出微型计算机结构图,中级工792、画出计算机环形网络模式图.doc
  4. java 像素级碰撞检测,» 像素级碰撞检测类
  5. puppy linux中文设置,Puppy Linux 中文支持包制作方法
  6. opython3l_python之 数据类型判定与类型转换
  7. 计划任务列表 html,OpenWrt使用crontab执行计划任务
  8. html调用app store,iOS 获取appStore的链接地址,从app中跳转 appStore中应用
  9. 外部中断实验 编写程序学习外部中断的电平触发方式。无中断时发光让发光二极管从左到右依次点亮,有外部中断请求时,4位数码管从0000开始加1显示(加到9999后复位为0000),同时蜂鸣器报警。
  10. 东北大学c语言真题及答案,东北大学C语言总测试题(含答案).pdf