码迷,mamicode.com
首页 > 其他好文 > 详细

正妹吃月饼

时间:2017-09-24 12:42:58      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:基础   blog   names   运算   code   return   namespace   基础上   clu   

P2431 正妹吃月饼

我一开始是a<=2^n-1<=b,直接输出n=(int)log(b+1)/log(2);

50分,没有仔细分析2^n-1<a但是2^(n+1)-1>b的情况。

这里考虑位运算

在l小于r的基础上从小到大|1,最后有多少个一加起来就可以了。

#include<iostream>
#define LL long long
using namespace std;
int main()
{
    int ans=0;
    LL l,r;
    cin>>l>>r;
    while((l|(l+1))<=r)
    l|=l+1;
    while(l)
    ans+=l&1,l>>=1;
    cout<<ans<<endl;
    return 0;
}

 

正妹吃月饼

标签:基础   blog   names   运算   code   return   namespace   基础上   clu   

原文地址:http://www.cnblogs.com/war1111/p/7586712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!