Uva679
思路:
和之前做的开关灯的题类似
只需要看小球的编号奇偶。
找规律就行,一直想推导出这个规律满足所有情况,但是没有想出来怎么推。
1 #include<bits/stdc++.h> 2 #define maxn 105 3 #define LL long long 4 using namespace std; 5 int n,k,d; 6 int main() 7 { 8 while(scanf("%d",&n)==1,n!=-1) 9 { 10 while(n--) 11 { 12 int ans=1; 13 scanf("%d %d",&k,&d); 14 for(int i=0;i<k-1;i++) 15 if(d&1) 16 { 17 ans=ans*2; 18 d=(d+1)/2; 19 } 20 else 21 { 22 ans=2*ans+1; 23 d/=2; 24 } 25 printf("%d\n",ans); 26 } 27 } 28 return 0; 29 }