Good Bye 2015B

Problem B:http://codeforces.com/contest/611/problem/B

B. New Year and Old Property

题意:问输入的年份a到b中转化为二进制后只有一个0的年份有几个。 

思路:不会位运算,当时没写出来,不过听说dfs就可以了

#include<bits/stdc++.h>  
#define LL long long  
using namespace std;  
LL a,b,t;  
void dfs(LL x,LL y){  
    if(x>b)  
    return;  
    if(a<=x&&x<=b&&y==1)  
    t++;  
    if(y==0)  
    dfs(x*2,y+1);  
      
    dfs(x*2+1,y);  
}  
int main(){  
    cin>>a>>b;  
    t=0;  
    dfs(1,0);  
    cout<<t<<endl;  
    return 0;  
} 

 

你可能感兴趣的:(Good Bye 2015B)