P2431 正妹吃月饼

题目描述

今天是中秋节。\(uim\)带来了一堆大小不同且味道各异的月饼。

这些月饼的质量分别是\(1g\),\(2g\),\(4g\),\(8g\),\(16g\)....后面一个是前面的2倍。每种只有一个。

uim让正妹随便吃。

正妹希望尝试尽可能多的口味,所以会吃尽可能多数量的月饼(不是重量)。而且她的确有些饿了,至少总共要吃掉\(A\) \(g\)的月饼才能满足。

然而正妹怕长胖,所以吃月饼不能合计超过\(B\) \(g\)。

她希望知道自己最多能吃多少个月饼

输入输出格式

输入格式:

两个数,\(a,b\)

输出格式:

正妹能吃到最多的数量

说明

30%数据,\(A,B<=1000\)

60%数据,\(A,B<=100000\)

100%数据,\(A,B<=2^{63}-1\)


我们当然不可以直接枚举,(其实枚举也可以跑过)

把\(B\)进行二进制拆分以后,对于每个位的1,我们可以把它去掉,然后直接把比它低的位全置1,从高到低枚举1,当第一次产生的新数比\(A\)大时,贪心的去想,就是答案了。

积累了一个错误点:1<<n

1<<n 会爆掉int!!! 最好搞个变量one来弄


Code:

#include <cstdio>
#define ll long long
ll a,b;
ll max(ll x,ll y){return x>y?x:y;}
ll cal(ll x)
{
ll cnt=0;
while(x) x-=x&-x,cnt++;
return cnt;
}
int main()
{
scanf("%lld%lld",&a,&b);
ll tmp=b,len=0,ans=0;
while(tmp) len++,tmp>>=1;
ans=max(cal(b),ans);
ll one=1;
for(ll i=len;i;i--)
{
if((b>>i-1)&1)
{
ll t=b^(one<<i-1);
t|=(one<<i-1)-1;
if(t>=a)
ans=max(cal(t),ans);
}
}
printf("%lld\n",ans);
return 0;
}

2018.7.11

洛谷 P2431 正妹吃月饼 解题报告的更多相关文章

  1. 洛谷【P2431】正妹吃月饼

    二进制前置技能:https://www.cnblogs.com/AKMer/p/9698694.html 题目传送门:https://www.luogu.org/problemnew/show/P24 ...

  2. 洛谷 P2323 [HNOI2006]公路修建问题 解题报告

    P2323 [HNOI2006]公路修建问题 题目描述 输入输出格式 输入格式: 在实际评测时,将只会有m-1行公路 输出格式: 思路: 二分答案 然后把每条能加的大边都加上,然后加小边 但在洛谷的题 ...

  3. 题解 P2431 【正妹吃月饼】

    假如做这道题想着用如下朴实的模拟,那肯定要WA至少4个点. #include <iostream> #include <cstdio> using namespace std; ...

  4. luogu2431 正妹吃月饼

    题目大意 求一个正整数集合\(K\),使得\(\sum_{k\in K}2^k\in[A,B]\),且\(|K|\)最大.\(A,B\)大小在long long范围内. 思路 \(\sum_{k\in ...

  5. 洛谷 P3797 妖梦斩木棒 解题报告

    P3797 妖梦斩木棒 妖梦是住在白玉楼的半人半灵,拥有使用剑术程度的能力. 题目描述 有一天,妖梦正在练习剑术.地面上摆放了一支非常长的木棒,妖梦把它们切成了等长的\(n\)段.现在这个木棒可以看做 ...

  6. 洛谷 P3299 [SDOI2013]保护出题人 解题报告

    P3299 [SDOI2013]保护出题人 题目描述 出题人铭铭认为给SDOI2012出题太可怕了,因为总要被骂,于是他又给SDOI2013出题了. 参加SDOI2012的小朋友们释放出大量的僵尸,企 ...

  7. 洛谷 P1407 [国家集训队]稳定婚姻 解题报告

    P1407 [国家集训队]稳定婚姻 题目描述 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关. 25岁的 ...

  8. 洛谷 P1361 小M的作物 解题报告

    P1361 小M的作物 题目描述 小M在MC里开辟了两块巨大的耕地\(A\)和\(B\)(你可以认为容量是无穷),现在,小\(P\)有\(n\)中作物的种子,每种作物的种子有1个(就是可以种一棵作物) ...

  9. 洛谷 P1852 [国家集训队]跳跳棋 解题报告

    P1852 [国家集训队]跳跳棋 题目描述 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子. 我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在\(a\),\(b\), ...

随机推荐

  1. appium 元素定位工具

    两种元素定位工具: 1.uiautomatorviewer是android-sdk自带的一个元素定位工具,目录D:\androidsdk\androidsdk\tools\bin . 双击启动uiau ...

  2. CF100015C

    主要找到环上任意一条边,有比较dis(u,v),dis(u,a)+w+dis(b,v),dis(u,b)+w+dis(a,u) 然后,然后没了 lca求dis(u,v):dis(u,v)=dis[u] ...

  3. HDFS文件系统基础

    HDFS架构实现 Hadoop当前稳定版本是Apache Hadoop 2.9.2,最新版本是Apache Hadoop 3.1.1. http://hadoop.apache.org/docs/ H ...

  4. 51nod-1298 圆与三角形(计算几何超详解)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1298 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是 ...

  5. c++ 使用this指针进行串联的函数调用

    如代码所示,在每个成员函数函数体最后返回*this.即可实现串联调用. class Time { public: Time(, , ); Time &setHour(int); Time &a ...

  6. jobs命令详解

    基础命令学习目录首页 在用管理员执行一个命令后,用Ctrl+Z把命令转移到了后台.导致无法退出root的. 输入命令:exit终端显示:There are stopped jobs. 解决方法:方法一 ...

  7. 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)

    1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...

  8. iOS软件"一天八杯水“app开发过程

    作为一个ios系统测试者和app外观设计者.我们首先要了解iOS系统的开发工具和资源.xcode和iOS sdk作为一个免费的开发环境值得我们去学习和了解.interface builder提供创建了 ...

  9. Daily Scrum 11.18

    今日完成任务: 1.在提问问题的时候为问题创建索引 2.解决了修改个人资料后刷新没有更新的问题 3.初步加入了采纳功能(没完善UI设计) 遇到困难:创建索引之后,跳转到主页,需要重新登录,找了半天不知 ...

  10. java实验三实验报告

    一.实验内容 1. XP基础 2. XP核心实践 3. 相关工具 二.实验过程(本次试验是在自己电脑上完成,没有使用实验楼) (一)敏捷开发与XP 1.XP是以开发符合客户需要的软件为目标而产生的一种 ...