城市的规划在城市建设中是个大问题。

不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的问题就开始显现。

而这座名为 Fractal 的城市设想了这样的一个规划方案,如下图所示:

当城区规模扩大之后,Fractal 的解决方案是把和原来城区结构一样的区域按照图中的方式建设在城市周围,提升城市的等级。

对于任意等级的城市,我们把正方形街区从左上角开始按照道路标号。

虽然这个方案很烂,Fractal 规划部门的人员还是想知道,如果城市发展到了等级 N,编号为 A 和 B的两个街区的直线距离是多少。

街区的距离指的是街区的中心点之间的距离,每个街区都是边长为 1010 米的正方形。

输入格式

第一行输入正整数 n,表示测试数据的数目。

以下 n 行,输入 n 组测试数据,每组一行。

每组数据包括三个整数 N,A,B,表示城市等级以及两个街区的编号,整数之间用空格隔开。

输出格式

一共输出 n 行数据,每行对应一组测试数据的输出结果,结果四舍五入到整数。

数据范围

1≤N≤31

1≤A,B≤22N

1≤n≤1000

输入样例:

3
1 1 2
2 16 1
3 4 33 

输出样例:

10
30
50 

没过不敢说话

用QQ旋转了几幅图

n=4

n=5

不难看出

右上是左上左旋转90°,再向上翻转180°得到的 (如果只是单纯的图形 旋转90°就可以得到,但是我希望得到一个入出口一样的图形 就需要再翻转一次)

右下同左上

左下是左上向右旋转180°得到的 (为了保证入出口 所以必须是向右旋转)

当n大于等于2之后 城市编号的大小变成

找到规律之后就是模拟了,递归找到n的位置,通过旋转变化

举个例子 n=3的时候 找55

n是奇数的时候

最开始的图形是

int ji[3][3]

{

0,0,0,

0,1,2,

0,4,3,

};

[1,16] [17,32],[33,48],[49,64]

55位于第四个区间

(最开始x=y=1 ,x,y表示55的坐标)

第四个区间位于ji数组 [2][2]的位置

那么

x+=(ji数组一维坐标-1)*权重 (x+= (2-1)*4 = 5)

y+=(ji数组二维坐标-1)*权重 (y+= (1-1)*4 = 1)

找到之后 要把ji数组按规则进行变换 即按 左上变成左下的规则

此时

ji={

0,0,0,

0,3,4,

0,2,1

};

在[49,52],[53,56],[57,60],[61,64]

55处于第2区间,

根据

一维坐标是1 ,二维坐标是2

x+= (1-1)*2 = 5

y+= (2-1) *2 = 3

找到之后 要把ji数组按规则进行变换 即按 左上变成右上的规则

ji={

0,0,0,

0,3,2,

0,4,1

};

在区间[53,53],[54,54],[55,55],[56,56]中 55位于第三区间 ji[1][1]

x+=(1-1)*1=5

y+=(1-1)*1 = 3

则 55的坐标是(5,3)

依次去求坐标,时间复杂度是log(n),也不会超时)

代码下次再发

分形之城--没过,吃宵夜去了,生蚝真好吃相关推荐

  1. 分形之城:递归超典型例题,还没明白?手把手画给你看!

    引用自Acwing,原题链接: 98. 分形之城 文章目录 题目 题解 代码 题目 城市的规划在城市建设中是个大问题. 不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的 ...

  2. OSChina 周日乱弹 ——我跟三对情侣一起吃宵夜

    2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2018)请戳(这里) [今日歌曲] @我是程序yuan :分享Alan Walker/Coldplay的单曲 ...

  3. 曾捡破烂为生,穷到没饭吃,现在身家395亿,给员工发3亿年终奖!

    视学算法 日期:2019年12月26日 正文共:1992字12图 预计阅读时间:5分钟 来源:创业智库 不知道你看到这一幕,会不会非常震惊: 一大堆钱被摆到红毯上,直接堆成了一道墙,墙的高度比人还高, ...

  4. 数据库中有痣但是有时取不到_农村这种长得像“泥鳅”的鱼,以前没人吃,现在可能有钱都吃不到...

    只说真话的农民公众号 原创文章,严禁转载 在农村中有很多不能叫出名字的花草和野味,它们当中虽然有些长得比较奇怪,名字也比较奇怪,但是却是非常好的疗补食物.有些花草是治疗疾病的良药,有些野味现在也被搬上 ...

  5. 越狠越有饭吃,越不狠越没饭吃

    1.这个社会,你越狠越有饭吃,越不狠越没饭吃,这样执行了,我的合伙人就不会干扰我,我的决定会越来越理智,然后才有可能做得大,要不然,他老是要来影响我,这个生意还要不要做,钱没赚到,一肚子火. 就这些我 ...

  6. 6年工作经验,面试拼多多要求涨薪60%被拒后怒怼:没双倍工资谁去

    大家都知道,互联网就是挣快钱的行业,很多人在几年之内就年薪百万的都非常多,尤其是大公司年薪几十万的都很正常,可这个互联网行业有一个不成文的潜规则,那就是吃青春饭,至于你能拿多少年薪,完全靠你个人能力决 ...

  7. 没有钱没技术没学历应该怎么去创业?

    没有钱没技术没学历应该怎么去创业. 正是因为没有钱或者没有技术.学历,我们应该要做的是多学习,只有不断的学习,获取更丰富的经验,你面对任何事才能很从容. 这里我建议大家去看一下樊登的<低风险创业 ...

  8. 一个解决中午吃什么去哪吃的程序

    一个解决中午吃什么去哪吃的程序 这下不用每天都纠结吃什么了! <html><head><script type="text/javascript" s ...

  9. 98. 分形之城 (分形变换,矩阵旋转)

    分形之城 题目 提交记录 讨论 题解 视频讲解 城市的规划在城市建设中是个大问题. 不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的问题就开始显现. 而这座名为 Fra ...

最新文章

  1. Poisson Surface Reconstruction
  2. JMeter-Eclipse添加自定义函数 MD5加密 32位和16位
  3. RocketMQ错误消息重试策略之Consumer的重试机制(timeout情况)
  4. api 原生hbase_Hbase常用api
  5. Hadoop相关技术
  6. PID控制器改进笔记之五:改进PID控制器之串级设定
  7. 德媒看2019年的世界:西方在争吵,中国在崛起,非洲在增长……
  8. android opengl es 雾化效果实例
  9. JAVA面试要点003_Mybatis中#和$的区别
  10. 河南城建计算机网络试卷,河南城建计算机网络技术学习心得体会.docx
  11. SpringBoot指南(五)——拦截器、原生组件
  12. java的oracle事务回滚_Oracle事务处理
  13. 邮件服务器pop110什么意思,pop pop3区别_25和110端口_imap和pop怎么设置
  14. Ubuntu 20.04 双系统安装过程(新手)
  15. vue字符串生成二维码的相关组件
  16. Manjaro的安装与配置
  17. 数据分析案例-航班准点分析
  18. java多线程设计模式详解
  19. 《ASP.NET AJAX 应用剖析立即上手》简体版即将上市!
  20. 一些最新任意文献下载网站:免费下载各种外文科技论文书籍电子版

热门文章

  1. Codeforces Edu Hacking
  2. 如何解决苹果电脑(Macbook Pro)没有声音?
  3. win7 IIS Web.config节点锁定问题
  4. zookeeper集群,HA,单点故障
  5. redis单点故障方案
  6. 2017 ACM ICPC Asia Regional - Daejeon
  7. matlab航电系统仿真,航空航天和国防
  8. 随机,摇号、彩票,生成随机数或是随机字符串(万能的evaluate) 。如何找到随机中的规律
  9. Revit中绘图填充与模型填充的区别
  10. Android项目实战:账本APP开发