icebound通过勤工俭学,攒了一小笔钱,于是他决定出国旅游。这天,icebound走进了一个神秘的神殿。神殿由八位守护者守卫,总共由
6464
64个门组成,每一道门后都有一个迷宫,迷宫的大小均为
100×100100 \times 100
100×100。icebound在迷宫中总共耗时
TT
T小时,消耗食物
KK
K公斤。历经千辛万苦之后,icebound终于穿越了迷宫,到达了神殿的中心。神殿的中心有一个宝箱。宝箱上显示有两个正整数
ll
l和
rr
r。icebound苦思冥想,终于发现一些打开宝箱的线索。你需要找到一个数
PP
P,它具有一个美妙的性质:它是
[l,r][l,r]
[l,r]中所有数的二进制表示里,
11
1的个数最多的一个数。如果你发现了这个美妙的数字,你就可以打开宝箱,获得巨额财富。
比如
[4,8][4,8]
[4,8]中:
4: 0100
5: 0101
6: 0110
7: 0111
8: 1000
二进制表示中
11
1的个数最多的数是
77
7,它含有
33
3个
11
1。

---------------------------------分割线-5/1---------------

题意:求出 [ l , r ] 之间,其二进制中所含 '1'最多的数.

####题解:现将 l 转化为 二进制 ,然后从低位到高位找'0'位,如果把'0'转化为'1'后所对应的数 <= r,那么就存下这个数.枚举完后,所存的数就是最优解.

tips:我是弟弟啊,我写复杂了,呜呜呜呜 -5/2

以下题解参考了这位大佬的博文:https://blog.csdn.net/Soul_97/article/details/80464879

题解:n|n+1 这个表达式的值等于 把n的二进制最后'0'位为转为'1'后的结果,tql.,在保证l<=r的情况下,取最大值(且满足'1'的位数最大,值最小).

最优:

#include <bits/stdc++.h>
using namespace std;int main(){long long l,r;cin>>l>>r;while((l|l+1)<=r) l|=l+1;cout<<l<<endl;return 0;
} 

优化前

#include <bits/stdc++.h>
using namespace std;
const int N=44;
int a[N],cnt=0;
typedef long long ll;
int main(){int l,r;cin>>l>>r;int tl=l;while(tl>0){a[++cnt]=tl%2;tl/=2;}for(int i=1;i<=33;i++){if(a[i]==0){if(l+((ll)1<<(i-1))<=r){l=l+(1<<(i-1));}else break;}}cout<<l<<endl;return 0;
} 

转载于:https://www.cnblogs.com/-yjun/p/10800515.html

F-神殿-2018年第二届河北省大学生程序设计竞赛(位运算)相关推荐

  1. 2018年第二届河北省大学生程序设计竞赛

    HBCPC2018 部分题解 Mex Query icebound的商店 Nim Game 神殿 跑图 520 icebound的账单 Beautiful Array Mex Query 题目描述: ...

  2. 2018第二届河北省大学生程序设计竞赛题解

    icebound的账单 题目描述 icebound从小就有记账的习惯.又到了月末icebound统计资金状况的时候.icebound每个月除了不停的挥霍以外,有时他会良心发现,勤工俭学,因此会有一些微 ...

  3. 第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem H. 神殿-题解

    传送门 Problem A. Mex Query Problem B. Nim Game Problem C. icebound 的账单 Problem G. 520 Problem H. 神殿 Pr ...

  4. 2017第一届河北省大学生程序设计竞赛题解

    超级密码 小明今年9岁了,最近迷上了设计密码!今天,他又设计了一套他认为很复杂的密码,并且称之为"超级密码". 说实话,这套所谓的"超级密码"其实并不难:对于一 ...

  5. 第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem G. 520-题解

    传送门 Problem A. Mex Query Problem B. Nim Game Problem C. icebound 的账单 Problem G. 520 Problem H. 神殿 Pr ...

  6. 第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem B. Nim Game-题解

    传送门 Problem A. Mex Query Problem B. Nim Game Problem C. icebound 的账单 Problem G. 520 Problem H. 神殿 Pr ...

  7. 2017hbcpc(第一届河北省大学生程序设计竞赛)

    题目链接:http://newoj.acmclub.cn/contests/1484 还是太菜,好多题目还是不会. 文章目录 1841.超级密码 1842.斗地主 1843.考研 1844.自动签到机 ...

  8. 第二届河南省大学生程序设计竞赛 Dr.Kong的机器人

    Dr.Kong的机器人 Dr.Kong设计了一个可以前进或后退机器人,该机器人在每个位置i会得到一个移动步数的指令Ki (i=1,2„N),聪明的机器人自己会判断是要前进Ki步还是后退Ki步. 例如: ...

  9. 2019河北省大学生程序设计竞赛(重现赛)

    B: 链接:https://ac.nowcoder.com/acm/contest/903/B 来源:牛客网 题目描述 Icebound hates math. But Imp loves math. ...

最新文章

  1. 我研究了最热门的200种AI工具,却发现这个行业有点饱和
  2. 稀疏矩阵加法运算_1.2 震惊! 某大二本科生写的矩阵乘法吊打Mathematica-线性代数库BLAS-矩阵 (上)...
  3. 【超100%解法】剑指 Offer 33. 二叉搜索树的后序遍历序列
  4. [leetcode]从中序与后序/前序遍历序列构造二叉树
  5. 小程序字符串拼接_小程序突袭预约!Yeezy 350quot;氧化满天星quot;拼接配色本月发售!...
  6. ctfshow-萌新-web10( 利用命令执行漏洞获取网站敏感信息)
  7. graphics2d 乱码 java_java Graphics2D绘制文字并居中并解决服务器乱码问题
  8. SQL Server insert的触发器
  9. 将你的掘金小册制作成一整本PDF
  10. 爱快支持服务器网卡嘛,虚拟机安装爱快软路由,跟我一起来测试,单网卡安装教程...
  11. Bootstrap系列之排版
  12. 场景管理:四叉树算法C++实现
  13. windows下 利用CoreAudio,Libmad,和3D环绕音效原理实现的MP3播放器
  14. Python实现随机漫步
  15. Vue项目引入移动端组件库--Mand Mobile
  16. 一大波苹果CMS系统主题来袭
  17. Python小程序之购买商品
  18. awk命令详解(大全)
  19. java rnn生成古诗_Char-RNN生成古诗
  20. (转)阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访

热门文章

  1. IDES学习――用采购订单进行公司间转储
  2. 『亚马逊市值7680亿美元』高盛分析师说估值依然过低丨背后的逻辑是什么?
  3. Windows查看端口被占用进程
  4. 用html5交换两个变量的值,JavaScript交换两个变量值的七种解决方案
  5. 7-8 帅到没朋友 (20 分) 【思路】【PTA】【C语言】
  6. 如何用python中pandas模块在csv文件中添加表头
  7. leaflet 加载GPX数据,显示图形(示例代码048)
  8. java卸载后装不_java卸载之后再重新安装之后无法运行Java了
  9. 谷歌推出一款72个量子比特的通用量子计算机_我是亲民_新浪博客
  10. c 语言 按路径创建文件夹