51nod 1740蜂巢迷宫
1740蜂巢迷宫
题目
有一个无限大的蜂巢迷宫,为了方便表示每一个六边形格子,现在把座标引入到这个迷宫中,如上图年示。
艾瑞特在这个迷宫中街,刚开始他在(0,0)的位置,按照下图所示的路线在这个迷宫中行走。
走了n步以后,他想知道自己在哪个位置了
输入
单组测试数据。
一个整数n (0≤n≤10^18),表示艾瑞特移动的步数。
输出
输出两个整数x和y,表示艾瑞所在的座标。
思路
首先确定好层数
由于每一层的砖块数分别为6,12,18,24…递增
所有可以依照此规律来计算出层数
然后确定其具体位置
六边形有六个方向
其六个边角延伸的坐标其实就是直线函数换算就可以了
不在边角上的块就要根据其所在具体位置分六种情况讨论
代码
#include<iostream>
#include<string>
using namespace std;
int main(){
long long x,r=0;
cin>>x;
if(x==0)cout<<"0 0"<<endl;
else{
long long i=0;
long long layer=0;
long long o1=0, o2=0;
while(x>r){layer++;i++;r+=6*i;
}long long step=x-r+6*i;long long side=step/layer;long long pos=step%layer;switch(side){
case 0:o1=layer*2;o2=0;if(pos!=0){for(int j=0;j<pos;j++){o1--;o2+=2;}}break;
case 1:o1=layer;o2=2*layer;if(pos!=0){o1=layer;o2=2*layer;for(int j=0;j<pos;j++){o1-=2;}}break;
case 2:o1=layer*(-1);o2=2*layer;if(pos!=0){for(int j=0;j<pos;j++){o1--;o2-=2;}}break;
case 3:o1=layer*(-2);o2=0;if(pos!=0){for(int j=0;j<pos;j++){o1++;o2-=2;}}break;
case 4:o1=layer*(-1);o2=(-2)*layer;if(pos!=0){for(int j=0;j<pos;j++){o1+=2;}}break;
case 5:o1=layer;o2=(-2)*layer;if(pos!=0){for(int j=0;j<pos;j++){o1++;o2+=2;}}break;
case 6:o1=layer*2;o2=0;}cout<<o1<<" "<<o2<<endl;}
}
51nod 1740蜂巢迷宫相关推荐
- 1740 蜂巢迷宫(模拟,暴力,剪枝)
有一个无限大的蜂巢迷宫,为了方便表示每一个六边形格子,现在把座标引入到这个迷宫中,如上图年示. 艾瑞特在这个迷宫中街,刚开始他在(0,0)的位置,按照下图所示的路线在这个迷宫中行走. 走了n步以后,他 ...
- 蜂巢迷宫 c语言,最强大脑的蜂巢迷宫 创意源于此
背景 人们为了更好的描述一个东西,有一种将大化小的思路,比如时钟被分为了12个区域,每个区域表示一个小时,然后每个小的区域又被划分为更小的区域表示分钟. 在GIS系统中,也有类似的思想,比如将地图划分 ...
- 51Nod1740 蜂巢迷宫
题目 有一个无限大的蜂巢迷宫,为了方便表示每一个六边形格子,现在把座标引入到这个迷宫中,如上图年示. 艾瑞特在这个迷宫中街,刚开始他在(0,0)的位置,按照下图所示的路线在这个迷宫中行走. 走了n步以 ...
- android仿IT之家、炫酷水波纹、Kotlin MVP项目、后台模拟点击、蜂巢迷宫小游戏等源码...
Android精选源码 Android 炫酷的多重水波纹源码 Android开发一款基于行为识别和个性化推荐的智能推荐APP 仿IT之家Android源码 android判断App位于前台或者后台源码 ...
- android仿IT之家、炫酷水波纹、Kotlin MVP项目、后台模拟点击、蜂巢迷宫小游戏等源码
Android精选源码 Android 炫酷的多重水波纹源码 Android开发一款基于行为识别和个性化推荐的智能推荐APP 仿IT之家Android源码 android判断App位于前台或者后台源码 ...
- *【51nod - 1459】迷宫游戏(记录双向权值的Dijkstra单源最短路)
题干: 你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数.还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间.游 ...
- 蜂巢的艺术与技术价值 - PostgreSQL PostGIS's hex-grid
标签 PostgreSQL , vector grid , polygon grid , square grid , Hexagon grid , 矢量网格 , 几何网格 , 线段网格 , 多边形网格 ...
- BCI competition IV 2b简介
BCI competition IV Data Set 2b BCI competition IV 公共数据集 Data sets 2b,是基于视觉诱发的左右手运动想象的脑电数据集.该数据集采集了9名 ...
- 什么是EEG以及如何解释EEG?
当你思考.做梦.看东西和感觉的时候,你的大脑是持续活跃的,吸收所有的信息,压缩和重新连接现有的数据,并将所有的东西整合成一致的体验.对你来说,这种经历构成了你的现实. 你的大脑是活的.你的大脑会塑造你 ...
最新文章
- PC Lint 初学
- 解决新浪微博API调用限制 突破rate_limit_status瓶颈
- Redis:12---有序集合对象
- 密码编码学之AES及其工作模式详解
- code第一部分:数组
- Matlab--三维散点插值成曲面
- java 海量文件存储_【直通BAT】海量数据面试总结
- Linux安装JDK完整步骤
- i计算机网络的应用程序,计算机网络技术及其在校园网的研究与应用毕业论文.doc...
- C 入门 第五节 多维数组 字符串数组
- ipad文献管理软件_使用ipad看文献,有哪些好用的工具软件?
- 背景图片定位background-position用photoshopcs4标尺工具
- 使用LibreOffice将office文档转pdf(java实现)
- 链家爬取深圳租房代码(java)
- 【Unity3D脚本】Transform类
- 禁止查看网络计算机方法,Win10系统如何禁止某个软件联网?Win10阻止某个程序联网的方法...
- 邮箱 POP3服务器(端口110) SMTP服务器(端口25)
- 史上最全开启windows7(win7)虚拟wifi教程(上)
- RK3588平台开发系列讲解(USB篇)UAC初识
- 在/tmp 目录创建临时文件
热门文章
- momentjs 常用总结
- DisGeNET的初步认识
- uniapp上传华为应用市场,您的应用提示获取手机存储敏感权限,用户不同意时强制退出应用
- Mac电脑鼠标滚轮方向相反的解决办法
- Kingdee 云星空 7.7 自定义BOM成本查询 替代料用量取0 金额取0
- html音乐跳动的线,利用CSS3制作跳动音乐频谱跳动效果
- 2022年计算机二级考试WPS Office高级应用与设计考前冲刺题及答案
- 电视盒子系统是安卓还是yunOS,三招快速弄清
- android音乐播放器实验报告总结,音乐播放器设计实验报告.docx
- Windows下vscode实现pretty-print