1740 蜂巢迷宫(模拟,暴力,剪枝)
有一个无限大的蜂巢迷宫,为了方便表示每一个六边形格子,现在把座标引入到这个迷宫中,如上图年示。
艾瑞特在这个迷宫中街,刚开始他在(0,0)的位置,按照下图所示的路线在这个迷宫中行走。
走了n步以后,他想知道自己在哪个位置了。
输入
单组测试数据。
一个整数n (0≤n≤10^18),表示艾瑞特移动的步数。
输出
输出两个整数x和y,表示艾瑞所在的座标。
输入样例
3
输出样例
-2 0
#include<bits/stdc++.h>
using namespace std;
int dir1[8][2]={{0,0},{1,2},{-2,0},{-1,-2},{1,-2},{2,0},{1,2}};
int dir[8][2]={{0,0},{1,2},{-1,2},{-2,0},{-1,-2},{1,-2},{2,0},{1,2}};
int main()
{ios::sync_with_stdio(false);long long n,x=0,y=0,tip=0,ans=0;cin>>n;while(ans+6*(tip+1)<=n){tip++;ans+=6*tip; }n-=ans;x=2*tip;y=0;if(tip==0){for(int i=1;i<=6&&n;i++){x+=dir1[i][0];y+=dir1[i][1];n--; }cout<<x<<" "<<y;return 0;}for(int i=1;i<=7&&n;i++){if(i==1){x+=dir[i][0];y+=dir[i][1];n--;continue; } if(i==2){if(n>=tip){n-=tip;x+=dir[i][0]*tip;y+=dir[i][1]*tip;continue;}for(int j=1;j<=tip&&n;j++){x+=dir[i][0];y+=dir[i][1];n--; }continue; }if(n>=(tip+1)){n-=tip+1;x+=dir[i][0]*(tip+1);y+=dir[i][1]*(tip+1);continue;}for(int j=1;j<=tip+1&&n;j++){x+=dir[i][0];y+=dir[i][1];n--; }}cout<<x<<" "<<y;return 0;
}
1740 蜂巢迷宫(模拟,暴力,剪枝)相关推荐
- 51nod 1740蜂巢迷宫
1740蜂巢迷宫 题目 有一个无限大的蜂巢迷宫,为了方便表示每一个六边形格子,现在把座标引入到这个迷宫中,如上图年示. 艾瑞特在这个迷宫中街,刚开始他在(0,0)的位置,按照下图所示的路线在这个迷宫中 ...
- android仿IT之家、炫酷水波纹、Kotlin MVP项目、后台模拟点击、蜂巢迷宫小游戏等源码...
Android精选源码 Android 炫酷的多重水波纹源码 Android开发一款基于行为识别和个性化推荐的智能推荐APP 仿IT之家Android源码 android判断App位于前台或者后台源码 ...
- android仿IT之家、炫酷水波纹、Kotlin MVP项目、后台模拟点击、蜂巢迷宫小游戏等源码
Android精选源码 Android 炫酷的多重水波纹源码 Android开发一款基于行为识别和个性化推荐的智能推荐APP 仿IT之家Android源码 android判断App位于前台或者后台源码 ...
- 蜂巢迷宫 c语言,最强大脑的蜂巢迷宫 创意源于此
背景 人们为了更好的描述一个东西,有一种将大化小的思路,比如时钟被分为了12个区域,每个区域表示一个小时,然后每个小的区域又被划分为更小的区域表示分钟. 在GIS系统中,也有类似的思想,比如将地图划分 ...
- 51Nod1740 蜂巢迷宫
题目 有一个无限大的蜂巢迷宫,为了方便表示每一个六边形格子,现在把座标引入到这个迷宫中,如上图年示. 艾瑞特在这个迷宫中街,刚开始他在(0,0)的位置,按照下图所示的路线在这个迷宫中行走. 走了n步以 ...
- KY16 求root(N, k)|模拟暴力解法
模拟暴力解法失败,这个方法正确是正确的,但是提交的时候会运行超时 #include <stdio.h> #include <iostream> #pragma warning( ...
- 【NOIP模拟题】【DP】【同余最短路】【暴力剪枝】2016.11.15 第二题 小L的牛栏 题解
小L的牛栏 [题目描述] 小L通过泥萌的帮助,成功解决了二叉树的修改问题,并因此写了一篇论文, 成功报送了叉院(羡慕不?).勤奋又勤思的他在研究生时期成功转系,考入了北京大学光华管理学院!毕业后,凭着 ...
- [BOI2019][第K大问题][暴力剪枝]D2T1 Olympiads
目录 题意 输入格式 输出格式 样例 Input Output 数据范围 时间限制 思路 代码 题意 有\(N\)个人,现在你要从中选出\(K\)个人出来,然后让这\(K\)个人一起参加\(K\)场比 ...
- 牛客 - 走迷宫(模拟+离线)
题目链接:点击查看 题目大意:给出一个走迷宫的策略: while(1){ if (前面没有障碍 && 前面还没有走过) 前进一步(); else if(右边没有障碍 && ...
最新文章
- iphone:UISplitView
- Nginx报错request entity too large的解决方案
- Intel CPU内存屏障
- 【LUOGU???】WD与积木 NTT
- java -jar 默认参数_JAVA入门学习指南,建议收藏
- 【Java】编写Java GUI应用程序,完成从键盘输入矩形的长和宽,求矩形的周长和面积并输出结果的功能...
- 登入Github、Git本地上传及Visual Studio Code上传教程
- 浅析Lambda 表达式
- spring@Transactional注解
- matlab mysvd代码解释,关于使用SVD进行PCA主成分提取的代码问题!也是必须涉及到原理的!...
- OSGi运行环境下java反序列化问题的解决方式
- oracle 只有年和月怎么拼_oracle 两表关联时,年月条件的写法引起的巨大性能的差异...
- lwip路由实现_TCP控制块《LwIP协议栈源码详解——TCP/IP协议的实现》
- ar9285无线网卡驱动 linux,Qualcomm
- 助老服务机器人结构设计
- 腾达u12如何安装linux驱动,Centos7 安装腾达U12驱动无线网卡
- 【Request】全面总结并理解request
- python-Excel操作(xlrd读,xlwt写)
- 京东网页端顶部导航HTML代码
- 计算机安全模式启动时蓝屏,win7安全模式也蓝屏怎么办_win7安全模式蓝屏怎么解决...