CodeForces 611BNew Year and Old Property

来源:互联网 发布:qq管家抢软件 编辑:程序博客网 时间:2024/06/06 00:41

题意:

找出a->b有几个值的二进制只有一个0

思路:

这种二进制自己还真是想不清楚,对于数字枚举二进制是0的位置,带进去看是多少返回就行


#include<cstdio>#include<cstring>#include<iostream>#include<queue>using namespace std;#define MAXD 1000 + 100#define Inf 1 << 30long long  s[100];long long a,b;long long  solve(int n){    long long sum=0;    for(int i=1;i<=n;i++)    {        sum+=s[i]<<(i-1);    }    return sum;}int main(){    cin>>a>>b;    for(int i=1;i<=64;i++)        s[i]=1;    int ans=0;    for(int i=2;i<=64;i++)    {        for(int j=1;j<i;j++)        {            s[j]=0;            if(solve(i)>=a&&solve(i)<=b)            {                ans++;            }            s[j]=1;        }    }    cout<<ans<<endl;}


0 0
原创粉丝点击