#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
ll n,a,b;
pll cacl(ll n,ll m)
{
if(n==0) return {0,0};
ll len=1ll<<(n-1),cnt=1ll<<(2*n-2);
auto pos=cacl(n-1,m%cnt);
auto x=pos.first,y=pos.second;
auto z=m/cnt;
if(z==0) return {y,x};
if(z==1) return {x,y+len};
if(z==2) return {x+len,y+len};
return {len*2-1-y,len-x-1};
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>n>>a>>b;
auto ac=cacl(n,a-1);
auto bc=cacl(n,b-1);
double x=ac.first-bc.first,y=ac.second-bc.second;
printf("%.0lf\n",sqrt(x*x+y*y)*10);
}
}
分形之城-----------------------思维(图形旋转+递归)
最新推荐文章于 2023-03-28 16:01:40 发布