hilbert
hilbert |
难度级别: A; 编程语言:不限;运行时间限制:1000ms; 运行空间限制:131072KB; 代码长度限制:102400B |
试题描述
|
图1为1阶Hilbert曲线,它由3条长度为1的线段构成; aaarticlea/png;base64,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qt//AGZpk975Rm8pchA2N3OOv41crG8X/wDIq6h1/wBX2Xd3HbvQBQ/4TQefdQDT2Mlv5uP3h2yCNcsQ23GOcZOOa1113TvtVvZy3Cx3NwoKRsDySM7d2MZx261xWqQPHd31wkmoRJPZMBcRQZEoUHEbKV+ReeMDPXmukkmS4urC0l0+7ZLdo5Q627FGk28Hd0AGck0AdFRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVy1142jtJdstg2zM2XVy21Y32ZICkjceg5rqa85uIGmtWkjW7mNvqc0jLBEQ0R81gHXj52AJxk4HoaAOvj8RW0dpc3F+v2RbeZomwTJ0AJPAyBg88cVqxyJLGskbB0cBlYHIIPQ1yWm5fRdStGuL+R7m6lRbpbb94TsXkjbgZ+gFdJpaXEWlWkd2qLcJCiyCMYUMAM4HpQBbooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooASloooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACkoooAWiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKSiigBaKKKACiiigAooooAKKKKACiiigAooooA//2Q==" alt="" width="553" height="199" /> |
输入
|
输入文件包含多组测试数据。
第一行,一个整数T,表示测试数据的组数。 接下来的T行,每行五个整数,N、x0、y0、x1、y1。 |
输出
|
T行,每行一个整数,其中第i行的整数表示第i组测试数据中沿着Hilbert曲线从(x0,y0)走到(x1,y1)需要走的路线长度。
|
输入示例
|
3
1 0 1 1 0 2 2 2 0 1 3 1 5 4 2 |
输出示例
|
2
5 36 |
其他说明
|
本题共2组测试数据。
测试点1:1<=N<=8; 测试点2:1<=N<=30。 对于全部的数据,1<=T<=500。 |
分治法,类似棋盘覆盖,先将问题转化成前缀减法,每次计算先确定是那个区域,再递归调用。
注意棋盘有4种形态,可以通过坐标变换转化成2种。
只是代码有些难写
#include<cstdio>
#include<cctype>
#include<stack>
#include<queue>
#include<cstring>
#include<algorithm>
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define ren for(int i=first[x];i!=-1;i=next[i])
using namespace std;
inline int read() {
int x=,f=;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-;
for(;isdigit(c);c=getchar()) x=x*+c-'';
return x*f;
}
typedef long long ll;
ll solve(int n,int x,int y,int inv) {
if(n==) {
if(inv) return x==&&y==?:x+y;
else return x==&&y==?:x+y;
}
ll N=(<<n);
if(inv) {
if(x<N/&&y<N/) return solve(n-,x,y,inv^);
if(x<N/&&y>=N/) return solve(n-,x,y-(N/),inv)+(N*N/);
if(x>=N/&&y>=N/) return solve(n-,x-(N/),y-(N/),inv)+(N*N/)*;
return solve(n-,N-x-,(N/)-y-,inv^)+(N*N/)*;
}
else {
if(x<N/&&y<N/) return solve(n-,x,y,inv^);
if(x<N/&&y>=N/) return solve(n-,(N/)-x-,N-y-,inv^)+(N*N/)*;
if(x>=N/&&y>=N/) return solve(n-,x-(N/),y-(N/),inv)+(N*N/)*;
return solve(n-,x-(N/),y,inv)+(N*N/);
}
}
int main() {
int T=read();
while(T--) {
int n=read(),x0=read(),y0=read(),x1=read(),y1=read();
printf("%lld\n",abs(solve(n,x0,y0,)-solve(n,x1,y1,)));
}
return ;
}
hilbert的更多相关文章
- Hilbert space
Definition A Hilbert space H is a real or complex inner product space that is also a complete metric ...
- hilbert矩阵 分类: 数学 2015-07-31 23:03 2人阅读 评论(0) 收藏
希尔伯特矩阵 希尔伯特矩阵是一种数学变换矩阵 Hilbert matrix,矩阵的一种,其元素A(i,j)=1/(i+j-1),i,j分别为其行标和列标. 即: [1,1/2,1/3,--,1/n] ...
- hilbert矩阵
希尔伯特矩阵 希尔伯特矩阵是一种数学变换矩阵 Hilbert matrix,矩阵的一种,其元素A(i,j)=1/(i+j-1),i,j分别为其行标和列标. 即: [1,1/2,1/3,……,1/n] ...
- Hilbert先生旅馆的故事
以前上实变函数的时候稍微讲了下这个故事呢. 来自Hansschwarzkopf 很久很久以前,在欧洲某国的一个小镇上,Hilbert先生开了一家拥有无数个房间的旅馆.一天,旅馆生意红火得一塌糊涂,不到 ...
- [PeterDLax著泛函分析习题参考解答]第6章 Hilbert 空间
1. 证明满足 (6) 的范数可以由一个内积诱导出来. 这个结论属于 von Neumann. 证明: 以实线性空间为例, 取内积 $$\bex \sex{x,y}=\cfrac{1}{4}[\sen ...
- Python在信号与系统(1)——Hilbert兑换,Hilbert在国家统计局的包络检测应用,FIR_LPF滤波器设计,格鲁吉亚也迫使高FM(PM)调制
谢谢董老师,董老师是个好老师. 心情久久不能平静,主要是高频这门课的分析方法实在是让我难以理解,公式也背只是,还是放放吧. 近期厌恶了Matlab臃肿的体积和频繁的读写对我的Mac的损害,所以学习了一 ...
- 信号处理——Hilbert变换及谱分析
作者:桂. 时间:2017-03-03 23:57:29 链接:http://www.cnblogs.com/xingshansi/articles/6498913.html 声明:转载请注明出处, ...
- 信号处理——Hilbert端点效应浅析
作者:桂. 时间:2017-03-05 19:29:12 链接:http://www.cnblogs.com/xingshansi/p/6506405.html 声明:转载请注明出处,谢谢. 前言 ...
- 泛函p121可分Hilbert空间都同构于l^2
如何理解最后面两句话, L^2与l^2同构 L^2里面 有理系数多项式 是可数稠密子集 所以L^2可分 可分Hilbert空间都同构于 l^2 傅里叶级数是一个稠密的子集
随机推荐
- Firefox上Web开发工具库一览
Firefox的目标之一就是尽可能地使web开发者的生活更简单高效,并通过提供工具和具有很强扩展性的浏览器使人们创造出神奇的东西.使web开发者使用Firefox的时候,浏览器可以提供大量开发工具和选 ...
- linux下查看文件夹的大小
du -sh du -sh dir_name/ du -sm * | sort -n //统计当前目录大小 并安大小排序 转自:http://www.jb51.net/LINUXjishu/77450 ...
- 在SQLServer处理中的一些问题及解决方法 NEWSEQUENTIALID()
一.DBLINK性能问题select * from dbsource.dbname.dbo.table where guid in (select guid from tablechangelog w ...
- Java for LeetCode 056 Merge Intervals
Given a collection of intervals, merge all overlapping intervals. For example, Given [1,3],[2,6],[8, ...
- 14.python笔记之paramiko
作者:刘耀 博客:www.liuyao.me 博客园:www.cnblogs.com/liu-yao 转载请注明 一,介绍 1.使用paramiko可以很好的解决以上问题,比起前面的方法,它仅需要在本 ...
- Extjs读取本地下拉选框数据源,分为text和value,显示text,传值value
this.rdTypeCom=new Ext.form.ComboBox({ hiddenName:'rdType', store:new Ext. ...
- VS 高亮显示不带后缀的C++头文件
工具-选项-文本编辑器-文件扩展名-勾选“将无扩展名文件映射到(M)” Microsoft Visual C++
- ubuntu用户添加adduser, useradd
ubuntu和windows一样,可以任意创建或者删除新的用户,windows下比较简单,ubuntu下需要使用命令,不过操作起来不是很繁琐,所以我尽量写的详细一些. 如何创建ubuntu新用户? ...
- jar包和war包的区别
jar包和war包的区别: jar包就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性了,这些jar包一般都会放在lib目录 ...
- Shell脚本入门与应用
编写第一个shell脚本 如同其他语言一样,通过我们使用任意一种文字编辑器,比如 nedit.kedit.emacs.vi 等来编写我们的 shell 程序.程序必须以下面的行开始(必须方在文件的第一 ...