hiho一下 第163周 希尔伯特曲线
来源:互联网 发布:知乎 撩妹技巧 编辑:程序博客网 时间:2024/06/05 19:45
题目1 : 希尔伯特曲线
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
3 6 1
- 样例输出
60
package hihocoder;//https://hihocoder.com/contest/hiho163/problem/1import java.util.*;public class xierbotequxian {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc=new Scanner(System.in);int n=sc.nextInt();long x=sc.nextLong();long y=sc.nextLong();sc.close();System.out.println(solve(x,y,n));}private static long solve(long x,long y,int n){if (n<=1){ if (x==1 && y==1){ return 1; }else if (x==1 && y==2){ return 2; }else if (x==2 && y==2){ return 3; }else{ return 4; } } long rows=(long) Math.pow(2, n)/2; int xth=0; long oneCount=rows*rows; if (x<=rows && y<=rows){ xth=1; }else if (x<=rows && y>rows){ xth=2; }else if (x>rows && y>rows){ xth=3; }else { xth=4; } if (xth==1){ return (xth-1)*oneCount+solve(y, x, n-1); }else if (xth==2){ long x0=0; long y0=rows; return (xth-1)*oneCount+solve(x, y-y0, n-1); }else if (xth==3){ long x0=rows; long y0=rows; return (xth-1)*oneCount+solve(x-x0, y-y0, n-1); }else{ long x0=2*rows+1; long y0=rows+1; return (xth-1)*oneCount+solve(y0-y,x0-x, n-1); }}}
描述
希尔伯特曲线是以下一系列分形曲线 Hn 的极限。我们可以把 Hn 看作一条覆盖 2n × 2n 方格矩阵的曲线,曲线上一共有 2n × 2n 个顶点(包括左下角起点和右下角终点),恰好覆盖每个方格一次。
Hn(n > 1)可以通过如下方法构造:
1. 将 Hn-1 顺时针旋转90度放在左下角
2. 将 Hn-1 逆时针旋转90度放在右下角
3. 将2个 Hn-1 分别放在左上角和右上角
4. 用3条单位线段把4部分连接起来
对于 Hn 上每一个顶点 p ,我们定义 p 的坐标是它覆盖的小方格在矩阵中的坐标,定义 p 的序号是它在曲线上从起点开始数第几个顶点。给定 p 的坐标,你能算出 p 的序号吗?
输入
输入包含3个整数 n , x , y 。 n 是分形曲线的阶数,(x, y)是 p 的坐标。
1 ≤ n ≤ 30
1 ≤ x, y ≤ 2n
输出
p 的序号。
阅读全文
0 0
- hiho一下 第163周 希尔伯特曲线
- [hihocoder]hiho一下 第163周 希尔伯特曲线
- hiho一下,第163周 题目1 : 希尔伯特曲线
- hiho一下 第143周 hiho密码
- hiho一下 第141周
- hiho一下 第139周
- hiho一下第143周
- hiho一下 第145周
- hiho一下 第167周
- hiho一下 第175周
- hiho一下 第174周
- hiho一下第56周 高斯消元
- hiho一下 第113周 Fibonacci (dp)
- [hiho一下 第128周] 后缀自动机
- [hiho一下 第129周] 后缀自动机
- [hiho一下 第130周] 后缀自动机
- hiho一下 第140周 清理海报
- hiho一下 第139周 买零食
- Source Insight基本使用和快捷键
- mysql基础学习(1)
- 将Eclipse中的项目提交到GitHub上
- POJ2352
- leetcode --18. 4Sum
- hiho一下 第163周 希尔伯特曲线
- 每日一则JavaWeb---Spring的OncePerRequestFilter的作用
- 1957: 乌鸦坐飞机
- CodeForces 618C 、Constellation
- 关于Nutch配置的整理
- 分页
- let 和 const 命令
- ios-base64编码
- 前端开发环境搭建 node+webpack+babel+js压缩