hihocoder1322希尔伯特曲线(163周)
hihocoder1322 : 希尔伯特曲线(163周)
题目链接
思路:
看图,对每个Hn迭代到H(n-1) 直到迭代到1就ok,判断在哪个区间就好了。一定一定要注意数据的范围!!
ac代码:
// hihocoder1324.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
#include<queue>
#include<vector>
#include<cstring>
#include<stdio.h>
#include<map>
#include<cmath>
#include<unordered_map>
#include<unordered_set>
using namespace std;
int main()
{
int n, x, y;
scanf("%d %d %d", &n, &x, &y);
long long mypow[31];
mypow[0] = 1;
for (int i = 1; i <= n; i++)
{
mypow[i] = 2 * mypow[i - 1];
}
long long res = 0, temp;
for (int i = n; i >= 1; i--)
{
if (x > mypow[i - 1] && y > mypow[i - 1]) //3
{
res += mypow[i] * mypow[i] / 2;
x -= mypow[i - 1];
y -= mypow[i - 1];
}
else if (x <= mypow[i - 1] && y > mypow[i - 1]) //2
{
res += mypow[i] * mypow[i] / 4;
y -= mypow[i - 1];
}
else if (x <= mypow[i - 1] && y <= mypow[i - 1]) //1
{
swap(x, y);
}
else if (x > mypow[i - 1] && y <= mypow[i - 1]) //4
{
res += mypow[i] * mypow[i] * 3 / 4;
temp = x;
x = mypow[i - 1] + 1 - y;
y = 2 * mypow[i - 1] + 1 - temp;
}
}
printf("%lld\n", res + 1);
return 0;
}
hihocoder1322希尔伯特曲线(163周)的更多相关文章
- matlab练习程序(生成希尔伯特曲线)
能够使用这样一条线遍历图像中所有的像素,不过这里没有这样做,而只是生成了这样一条曲线. 程序中h,w是最终图像的高和宽,n为希尔伯特曲线阶数. 这里如果n等于log2(h)或log2(w),则图像就全 ...
- 希尔伯特曲线——第八届蓝桥杯C语言B组(国赛)第三题
原创 标题:希尔伯特曲线 希尔伯特曲线是以下一系列分形曲线 Hn 的极限.我们可以把 Hn 看作一条覆盖 2^n × 2^n 方格矩阵的曲线,曲线上一共有 2^n × 2^n 个顶点(包括左下角起点和 ...
- THREE.js代码备份——canvas - lines - colors(希尔伯特曲线3D、用HSL设置线颜色)
<!DOCTYPE html> <html lang="en"> <head> <title>three.js canvas - l ...
- 希尔伯特曲线python3实现
需要OpenGL库:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl #coding:utf-8 from OpenGL.GL import * ...
- 分形之希尔伯特-皮亚诺(Hilbert-Peano)曲线
1890年,意大利数学家皮亚诺(Peano G)发明能填满一个正方形的曲线,叫做皮亚诺曲线.后来,由希尔伯特作出了这条曲线,又名希尔伯特曲线.Hilbert-Peano曲线是一种分形图形,它可以画得无 ...
- hihocoder1322 树结构判定(161周)
hihocoder1322 : 树结构判定(161周) 题目链接 思路: 无向图中判断是不是一棵树. 并查集判断.判断是不是只有一个连通分量.并且该联通分量中没有环.没有环的判定很简单就是看边的数目和 ...
- UVaLive 7375 Hilbert Sort (递归,四分图,模拟)
题意:告诉你一条希尔伯特曲线的大小,然后给你n 个人,及n 个人的坐标,你的起点是左下角,终点是右下角,按照希尔伯特的曲线去走,按照这个顺序给n个人排序, 按顺序输出每个人的名字! 析:这就是一个四分 ...
- 蓝桥杯近3年决赛题之3(17年b组)
做的时候对了2个小题,一个大题可能会拿点分数. 1. 标题:36进制 对于16进制,我们使用字母A-F来表示10及以上的数字.如法炮制,一直用到字母Z,就可以表示36进制. 36进制中,A表示10,Z ...
- 高效的多维空间点索引算法 — Geohash 和 Google S2
原文地址:https://www.jianshu.com/p/7332dcb978b2 引子 每天我们晚上加班回家,可能都会用到滴滴或者共享单车.打开 app 会看到如下的界面: app ...
随机推荐
- APUE-文件和目录(二)函数access,mask,chmod和粘着位
4.7 函数access和faccessat 当一个进程使用了设置用户ID和设置组ID作为另一个用户(或者组)运行时,这时候有效用户(组)ID和实际用户(组)ID不一样,但进程仍然希望测试实际用户(组 ...
- mariadb/mysql使用Navicat连接报错
[问题1] 使用Navicat连接服务器的mariadb/mysql时报错 access denied for user root@192.168.xx.xx(using password:yes) ...
- Flask:cookie 和 session (0.1)
Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2 Cookie是什么?有什么用? 某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常 ...
- UE简单配置
1 头上显示文件位置和名称,视图->视图列表——>打开文件标签,在右面点放大 2 函数列表,视图->视图列表——>打开文件标签
- MFC的定时函数 SetTimer和结束killTimer
什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数了. 使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以 ...
- matlab随笔(二)
circshift 两种形式 :第一种Y = circshift(A,K)就不用说了,将A中的元素向右移动K个位置. 需要注意的是第二种形式:Y = circshift(A,K,dim),这种形式不好 ...
- thinkphp5 url传参
url('index/blog/read',['id'=>5,'name'=>'thinkphp']); 手册https://www.kancloud.cn/manual/thinkphp ...
- python3项目之数据可视化
数据可视化指的是通过可视化表示来探索数据,它与数据挖掘紧密相关,而数据挖掘指的是使用代码来探索数据集的规律和关联. 数据科学家使用Python编写了一系列令人印象深刻的可视化和分析工具,其中很多也可供 ...
- poj 3372(找规律)
Candy Distribution Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6033 Accepted: 335 ...
- NopCommerce 执行计划任务不同Services协调操作导致更新数据失败的问题!
问题描述: 在Nop的计划任务里需要两个任务协调操作 _shipmentService.InsertShipment(shipment); _orderProcessingService.Ship(s ...