分析:这个题我是没有做出来的,或者说我做出来的那个代码总是超时,看了紫书才明白,原来只需模拟最后一个小球的路线即可。(本题知道小球奇偶性便能判断出他最终会落在那个子树上)
代码如下:(完全抄的紫书)
#include <cstdio>
int main()
{
int n,a,b;
long long k;
while (scanf("%d",&n)&&n!=-1)
{
for (int i=0;i<n;i++)
{
k=1;
scanf("%d %d",&a,&b);
for (int j=0;j<a-1;j++)//核心部分
{
if (b%2==1) {k=k*2; b=(b+1)/2;}
else {k=k*2+1;b/=2;}
}
printf("%lld\n",k);
}
}
return 0;
}