题解 Fractal Streets
#include<cstdio>
#include<math.h>
#include<utility>//pair
using namespace std;
#define ll long long
#define pr pair<ll,ll>
#define mp make_pair
pr get(int n,ll m) {//返回值是第n层第m个的坐标
if (!n) return mp(0,0);
ll len=1ll<<(n-1),cnt=(1ll<<(2*n))/4;
pr pos=get(n-1,m%cnt);
//我们把它在下一层的坐标求出来,然后根据它在这一层的方位(左上,左下,右上,右下),还原它旋转移动前的坐标
ll x=pos.first,y=pos.second,z=m/cnt;
if (z==0) return mp(y,x);
else if (z==1) return mp(x,y+len);
else if (z==2) return mp(x+len,y+len);
else if (z==3) return mp(-y+2*len-1,-x+len-1);
//z==1,2都是可以直接平移得到,而z==0,3需要旋转
//其实路径的形状并不重要,关键是第n层与第n+1层间的的坐标是怎样变换的。
}
int main() {
int T,n;
ll a,b,x,y;
scanf("%d",&T);
while(T--) {
scanf("%d%lld%lld",&n,&a,&b);
pr A=get(n,a-1),B=get(n,b-1);
x=A.first-B.first,y=A.second-B.second;
printf ("%.0lf\n",sqrt(x*x+y*y)*10);
}
}
这种基础题说它简单吧,它的确不难,主要就是思维难度。但如果基础不扎实的话,这种题目就会让你在考场上耗费很多时间(譬如小蒟蒻我qwq)
题解 Fractal Streets的更多相关文章
- POJ 3889 Fractal Streets(逼近模拟)
$ POJ~3889~Fractal~Streets $(模拟) $ solution: $ 这是一道淳朴的模拟题,最近发现这种题目总是可以用逼近法,就再来练练手吧. 首先对于每个编号我们可以用逼近法 ...
- poj3889 fractal streets
分形街道 我干,这个毒瘤. 想起来就头痛. 首先看题就是一大难题...... 说一下题目大意吧. 每当n+1时,把n阶图复制为4份.2*2排好. 右边两个不动.左上顺时针旋转90°,左下逆时针旋转90 ...
- bzoj2263: Pku3889 Fractal Streets
给出两点编号,求如图所示的图中两点间欧氏距离*10取整 递归处理由编号求出坐标 #include<cstdio> #include<cmath> int T,n,s,t; vo ...
- POJ3889Fractal Streets
Fractal Streets Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 445 Accepted: 162 Des ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 0x03
指数级枚举:1到n任意选取的所有方案数: #include<bits/stdc++.h> using namespace std; int n,a[1100],vis[1100],cnt, ...
- 题解-AtCoder-agc003F Fraction of Fractal(非矩阵快速幂解法)
Problem AtCoder-agc003F 题意:给出\(n\)行\(m\)列的01矩阵,一开始所有 \(1\) 连通,称此为\(1\)级分形,定义\(i\)级分形为\(i-1\)级分形中每个标示 ...
- 2015北京网络赛 H题 Fractal 找规律
Fractal Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acmicpc2015beijingo ...
- codeforce1070 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) 题解
秉承ACM团队合作的思想懒,这篇blog只有部分题解,剩余的请前往星感大神Star_Feel的blog食用(表示男神汉克斯更懒不屑于写我们分别代写了下...) C. Cloud Computing 扫 ...
随机推荐
- mysql 表分区操作
//不支持动态创建分区CREATE TABLE `rpt_exp_event_bucket_creative_d_across` ( `bucket_id` VARCHAR(200) NOT NULL ...
- 简单java web制作思路
经过俩天的摸索,和学姐的帮助下终于做出来一个简单地网页版的学生信息添加的系统.接下来说一下答题的思路: 首先我个人习惯先做网页界面,创建3个jsp文件分别是添加界面,成功界面,失败界面.这件看起来更加 ...
- 深度优先搜索DFS---01背包问题(1)
题目: 有n件物品,每件物品的重量为w[i],价值为c[i].现在需要选出若干件物品放入一个容量为 V 的背包中,使得在选入背包的物品重量之和,不超过容量V的前提下,让北欧保重物品的价值之和最大,求最 ...
- 分享10个免费或便宜的Photoshop替代工具
说到编辑照片和图像文件,一般很多人都使用photoshop软件.然而,使用现在的最新版本Photoshop CC每月最低也要支付980日元,感觉使用门槛有点高的人应该不少吧. 有一篇文章,推荐了10个 ...
- Java,C 位移运算符 有符号右移>>与无符号右移>>>
个人博客 地址:https://www.wenhaofan.com/a/20181029232749 有符号右移 正数有符号右移 首先计算4>>2 将4转为二进制 0000 0100 右移 ...
- 用浏览器的油猴子脚本调用IDM下载百度云盘中的资料
用浏览器的油猴子脚本调用IDM下载百度云盘中的资料(只能支持单个文件下载) 第一步需要现在浏览器中安装油猴子插件Tampermonkey.crx 安装油猴子插件插件主页:https://tamperm ...
- Uva10791 唯一分解定理模板
唯一分解定理: Uva10791 题意: 输入整数n,要求至少两个正整数,使得他们的最小公倍数为n,且这些整数的和最小 解法: 首先假设我们知道了一系列数字a1,a2,a3……an,他们的LCM是n, ...
- 使用Scanner类
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { ...
- gitkraken生成ssh keys并连接git
gitkraken中生成ssh keys 打开gitkraken ,点击左上file,选择preferences 需要选择一个指定目录 将复制的ssh keys粘贴到gitlab 或者 GitHub中 ...
- 【Spring】事务(transactional)之初步理解
一. 场景 有一个定时器,做数据库表数据同步. 把数据库A的表table(DB_A_TABLE)同步到数据库B的表table(DB_B_TABLE). 对于DB_A_TABLE的每行数据要做一定的逻辑 ...