codeforces 484a Bits

来源:互联网 发布:淘宝网电风扇 编辑:程序博客网 时间:2024/05/16 08:57

题意:

让你找出所给的l, r 区间中,在二进制下1的个数最多的值。

思路:

直接从l开始填充1,填充到尽量接近r即可。

code:

#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream>using namespace std;typedef long long LL;int main(){    LL l, r;    LL n;    cin>>n;    while(n--)    {        cin>>l>>r;        for(LL i = 1;i + l <= r; i <<= 1)        {            if((l & i) == 0)            {                l += i;            }        }        cout<<l<<endl;    }    return 0;}


0 0
原创粉丝点击