规律:对于深度为d的第n个小球,将(n-1)表示为(d-1)位的二进制数,从低位开始,如果为1向右,否则向左
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
const int inf=0x3f3f3f3f;
const double epos=1e-8;
int main(){
int d,n;
int c;
scanf("%d",&c);
while(c--){
scanf("%d",&d);
if(d==-1) break;
scanf("%d",&n);
--n;
int t=1;
for(int i=0;i<d-1;++i){
t<<=1;
if(n&(1<<i)) t|=1;
}
printf("%d\n",t);
}
return 0;
}
本文介绍了一个利用二进制数规律求解深度为d的第n个小球路径的方法。通过将(n-1)表示为(d-1)位的二进制数,从低位开始判断每个位是否为1来决定向右或向左,从而得出小球的具体路径。
1939

被折叠的 条评论
为什么被折叠?



