这个题直接模拟是超时的,因为最大深度为20,然后球的个数最大为 6*10^5,然后时间复杂度已经是10^6,如果有10^5组数据,然后就超时啦啦。所以就来找规律~
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--){
int n,m;
scanf("%d %d",&n,&m);
int temp=1,ans=1;
for(;;)
{
if(temp==n) break;
if(m%2==0) {m=m/2;ans=ans*2+1;}//向右走
else {m=(m+1)/2;ans=ans*2;}//向左走
temp++;
}
printf("%d\n",ans);
}
scanf("%d",&t);
return 0;
}