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; }