【数论】[luoguP2431]正妹吃月饼
题目
很少做这种二进制的题 感觉很陌生 以后要多练练 感觉位运算好绕
把a二进制拆分 然后从最低位开始找 如果当前位是0的话 就判断一下把它变成1之后是不是比b小 小的话就变 有点贪心思想
代码如下
#include<iostream>
#include<cstdio>
#include<cctype>using namespace std;#define in = read();typedef long long ll;typedef unsigned int ui;ll a , b;int ans;inline ll read(){ll num = 0 , f = 1; char ch = getchar();while(!isdigit(ch)){if(ch == '-') f = -1;ch = getchar();}while(isdigit(ch)){num = num*10 + ch - '0';ch = getchar();}return num*f;
}int main(){a in; b in;while((a|(a + 1)) <= b)a |= a + 1;while(a){ans += a&1;a >>= 1;}printf("%d" , ans);
}//COYG
下面是Qiu.YF的代码 思路也很好理解 可以拿笔模拟一下
#include<cstdio>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<ctime>
inline long long read(){long long num=0,f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}while(isdigit(ch)){num=num*10+ch-'0';ch=getchar();}return num*f;
}inline long long getlen(long long x){long long ans=0;while(x){if(x&1) ans++;x>>=1;}return ans;
}long long ans;int main(){long long a=read(),b=read();long long len=(long long)log2(b)+1;for(long long i=len-1;i>=0;--i){long long x=1<<i;if(!(x&b)) continue;long long s=x^b;for(long long j=0;j<i;++j) s|=(1<<j);if(s<a) continue;ans=std::max(ans,getlen(s));}ans=std::max(ans,getlen(b));printf("%d",ans);return 0;
}
【数论】[luoguP2431]正妹吃月饼相关推荐
- 洛谷P2431正妹吃月饼
刷题之路-数论 洛谷P2431正妹吃月饼 传送门 题目描述 做题思路 将a转换成二进制,然后从最小位开始,对每一位进行判断:若为0,则转换为1,若转换后大于b,则结束,否则继续.最后对a中的1的个数进 ...
- 洛谷 P2431 正妹吃月饼 解题报告
P2431 正妹吃月饼 题目描述 今天是中秋节.\(uim\)带来了一堆大小不同且味道各异的月饼. 这些月饼的质量分别是\(1g\),\(2g\),\(4g\),\(8g\),\(16g\)....后 ...
- 中秋特辑--洛谷题目-P2431【正妹吃月饼】
中秋特辑-洛谷题目讲解 P2431 正妹吃月饼 又快到了一年一次的中秋节了,也不知道大家有没有去吃月饼,嘿嘿,我最喜欢云腿月饼老好吃了. 虽然是到了中秋节,但是我们依然要刷题来复习和提高自己欸. 现在 ...
- P2431 正妹吃月饼
P2431 正妹吃月饼 求给定区间二进制1的个数最多的数 即:max{popcount(i)},i∈[l,r]max\{popcount(i)\},i\in[l,r]max{popcount(i)}, ...
- 洛谷 P2431 正妹吃月饼
题目描述 今天是中秋节.uim带来了一堆大小不同且味道各异的月饼. 这些月饼的质量分别是1g,2g,4g,8g,16g....后面一个是前面的2倍.每种只有一个. uim让正妹随便吃. 正妹希望尝试尽 ...
- luogu2431 正妹吃月饼
题目大意 求一个正整数集合\(K\),使得\(\sum_{k\in K}2^k\in[A,B]\),且\(|K|\)最大.\(A,B\)大小在long long范围内. 思路 \(\sum_{k\in ...
- P2431 正妹吃月饼 [位运算]
传送门 题意 : 求l-r之间所有数 , 表示为2进制1最多的有几个 考虑贪心 , 每次将l第一个不为0的加1 , 大于r时停止 这里有一个玄学的操作 , l = l|(l+1) , 就可以实现将第一 ...
- 除了吃月饼,中秋节还能干啥?
明天 八月十五,团圆夜 花好月圆之际 除了吃月饼,还能干啥? 阿里妹带来双重好礼,陪你过中秋~ (往下看,送云栖大会三日通票哦) 1重礼 - 阿里技术热门精选 - <Java 开发手册> ...
- OSChina 周三乱弹 ——我就爱吃月饼,就爱抢月饼。我高兴。
2019独角兽企业重金招聘Python工程师标准>>> @巴拉迪维:张敬轩<吻得太逼真>. 巴叔是麦霸, 爱上了乱弹点歌. 吻得太逼真 - 张敬轩 手机党少年们想听歌,请 ...
最新文章
- Android图形---OpenGL(二)
- python:列表增加元素,删除元素,切片等
- spring调用存储过程
- 将ARM4412开发板配置成USB网卡,并且使用USB通过Ubuntu上网
- 组织来了!特斯拉中国车友俱乐部开启官方认证
- java listview排序_android listviewadapter 怎么进行排序
- IE浏览器中访问jsp页面,页面不执行ajax请求,后台控制台报错
- UVA 10118 Free Candies
- 【数据结构笔记31】Dijkstra算法例题:旅游规划(双权重),以及其他推广
- π-Algorithmist分类题目(2)
- SpringBoot中Async异步方法和定时任务介绍
- HTTP服务器错误状态码4XX、5XX
- MySQL命令行中文显示乱码怎么办
- 实现小程序与SSM后台数据交互
- python.exe: No module named pip以及pycharm下载插件失败等问题
- Stripe国际支付平台接入
- android单元测试教程,Android单元测试-Junit
- OpenCV检测篇(二)——笑脸检测
- mysql查询当年年份
- 4K显示屏Win10下软件字体太小解决方法