New Year's Eve CodeForces - 912B
考察:位运算+推导
本质是考察推规律,我一眼看过去还以为是字典树.结果这树枝多的离谱.排除字典树的做法.因为数字又是可以随意取于是本蒟蒻蒙蔽..
参考大佬的正确思路:
在草稿纸上可以列出1~n的答案可以发现规律:当k==1,答案就是n.当k>1,答案就是2的n的位数次方-1.
1 #include <iostream> 2 using namespace std; 3 typedef long long ll; 4 int main() 5 { 6 ll n,k; 7 scanf("%lld%lld",&n,&k); 8 if(k==1) printf("%lld\n",n); 9 else{ 10 int ans = 0; 11 while(n) { n>>=1 ; ans++;} 12 printf("%lld",(1ll<<ans)-1); 13 } 14 return 0; 15 }