博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ3889 Fractal Streets 递归
阅读量:5144 次
发布时间:2019-06-13

本文共 2098 字,大约阅读时间需要 6 分钟。

递归下去,不过要处理好坐标变换,不然很恶心

1 /* *********************************************** 2 Author        :BPM136 3 Created Time  :2018/7/15 12:25:52 4 File Name     :3889.cpp 5 ************************************************ */ 6  7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 using namespace std;15 16 typedef long long ll;17 18 const int con[] = { 0,1,3,2};19 const int can_add_x[] = { 0,0,1,1};20 const int can_add_y[] = { 0,1,0,1};21 const int tur_P[] = { 1,0,-1,0};22 23 ll bit4[35];24 ll bit2[35];25 26 ll sqr(ll x) { return x*x; }27 28 struct point {29 ll x,y;30 point() {}31 point(ll _x,ll _y) : x(_x),y(_y) {}32 void init() {33 x=y=0;34 }35 point operator+(const point &b) const {36 point ret;37 ret.x=x+b.x;38 ret.y=y+b.y;39 return ret;40 }41 point operator-(const point &b) const {42 point ret;43 ret.x=x-b.x;44 ret.y=y-b.y;45 return ret;46 }47 double mean() {48 double ret=0;49 ret=sqr(x)+sqr(y);50 return sqrt(1.0*ret);51 }52 };53 54 point get_id(int n,ll x) {55 point ret; ret.init();56 if(n==1) {57 if(x==1) ret=point(1,1);58 if(x==2) ret=point(1,2);59 if(x==3) ret=point(2,2);60 if(x==4) ret=point(2,1);61 return ret;62 }63 if(x<=bit4[n-1]) {64 point tmp=get_id(n-1,x);65 ret=point(tmp.y, tmp.x);66 } else67 if(x<=bit4[n-1]*2) {68 point tmp=get_id(n-1,x-bit4[n-1]);69 ret=point(tmp.x, tmp.y+bit2[n-1]);70 } else71 if(x<=bit4[n-1]*3) {72 point tmp=get_id(n-1,x-bit4[n-1]*2);73 ret=point(tmp.x+bit2[n-1], tmp.y+bit2[n-1]);74 } else {75 point tmp=get_id(n-1, x-bit4[n-1]*3);76 ret=point(bit2[n]+1-tmp.y, bit2[n-1]+1-tmp.x);77 }78 return ret;79 }80 81 int main() {82 bit4[0]=1; for(int i=1;i<31;i++) bit4[i]=bit4[i-1]*4;83 bit2[0]=1; for(int i=1;i<31;i++) bit2[i]=bit2[i-1]*2;84 85 int T;86 scanf("%d",&T);87 while(T--) {88 int n,h,o;89 scanf("%d%d%d",&n,&h,&o);90 point id_h=get_id(n,h);91 point id_o=get_id(n,o);92 cout<<(ll) ( ((id_h-id_o).mean())*10 )<
View Code

 

转载于:https://www.cnblogs.com/MyGirlfriends/p/9313445.html

你可能感兴趣的文章
loj6031「雅礼集训 2017 Day1」字符串
查看>>
loj6198 谢特
查看>>
uoj#370【UR #17】滑稽树上滑稽果
查看>>
uoj139 【UER #4】被删除的黑白树
查看>>
[CTSC2017]密钥
查看>>
uoj213 【UNR #1】争夺圣杯
查看>>
20190907爆零记
查看>>
[MtOI2019]幽灵乐团
查看>>
uoj74 【UR #6】破解密码
查看>>
uoj118 【UR #8】赴京赶考
查看>>
[HNOI2015]落忆枫音
查看>>
uoj140 【UER #4】被粉碎的数字
查看>>
[eJOI2018]元素周期表
查看>>
uoj21 【UR #1】缩进优化
查看>>
【LGP5439】【XR-2】永恒
查看>>
uoj22 【UR #1】外星人
查看>>
[USACO18JAN]Stamp Painting
查看>>
uoj192 【UR #14】最强跳蚤
查看>>
「LibreOJ NOI Round #2」单枪匹马
查看>>
uoj388 【UNR #3】配对树
查看>>