[Hnoi2006]马步距离
1285: [Hnoi2006]马步距离
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 36 Solved: 16
[Submit][Status][Web Board]
Description
任给平面上的两点p和s,它们的坐标分别为(xp,yp)和(xs,ys),其中,xp,yp,xs,ys均为整数。从(xp,yp)出发经过一步马步移动 可以达到(xp+1,yp+2)、(xp+2,yp+1)、(xp+1,yp-2)、(xp+2,yp-1)、(xp-1,yp+2)、(xp- 2,yp+1)、(xp-1,yp-2)、(xp-2,yp-1)。假设棋盘充分大,并且坐标可以为负数。现在请你求出从点p到点s 至少需要经过多少次马步移动?
Input
Output
Sample Input
1 2 7 9
Sample Output
5
HINT
Source
1 #include <bits/stdc++.h> 2 using namespace std; 3 int dx[8]={1,1,-1,-1,2,2,-2,-2}; 4 int dy[8]={2,-2,2,-2,1,-1,1,-1}; 5 int a,b,c,d,x,y,ans; 6 int px[100000]; 7 int py[100000]; 8 int h[30][30]; 9 bool v[30][30]; 10 11 void bfs() 12 { 13 int head,tail,xx,yy,x,y,i; 14 head=0; 15 tail=1; 16 px[1]=0; 17 py[1]=0; 18 memset(h,127,sizeof(h)); 19 h[0][0]=0; 20 while (head!=tail) 21 { 22 head++; 23 x=px[head]; 24 y=py[head]; 25 v[x][y]=false; 26 for (i=0;i<8;i++) 27 { 28 xx=x+dx[i]; 29 yy=y+dy[i]; 30 if (xx>-10 && xx<20 && yy>-10 && yy<20) 31 if (h[xx][yy]>h[x][y]+1) 32 { 33 h[xx][yy]=h[x][y]+1; 34 if (!v[xx][yy]) 35 { 36 tail++; 37 px[tail]=xx; 38 py[tail]=yy; 39 v[x][y]=true; 40 } 41 } 42 } 43 } 44 } 45 46 int main() 47 { 48 cin>>a>>b>>c>>d; 49 x=abs(a-c); 50 y=abs(b-d); 51 bfs(); 52 while (x>=10 || y>=10) 53 { 54 if (x>y) 55 { 56 x=x-2; 57 y=y-1; 58 } 59 else 60 { 61 x=x-1; 62 y=y-2; 63 } 64 ans++; 65 x=abs(x); 66 y=abs(y); 67 } 68 ans=ans+h[x][y]; 69 cout<<ans<<endl; 70 return 0; 71 }
马步距离
转载于:https://www.cnblogs.com/LHR-HY/p/6879026.html
[Hnoi2006]马步距离相关推荐
- BZOJ 1193: [HNOI2006]马步距离【贪心+搜索】
1193: [HNOI2006]马步距离 [题目描述] 传送门 [题解] 大范围贪心,然后小范围BFS,为了答案准确,尽量使这个小范围大,这题100就可以了. 代码如下 #include<que ...
- bzoj 1193: [HNOI2006]马步距离(贪心+BFS)
1193: [HNOI2006]马步距离 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2117 Solved: 953 [Submit][Sta ...
- P2060 [HNOI2006]马步距离
P2060 [HNOI2006]马步距离 数据到百万级别,明显爆搜不行,剪枝也没法剪.先打表.发现小数据内步数比较受位置关系影响,但数据一大就不影响了.大概搜了一个20*20的表把赋值语句打出来.判断 ...
- 【BZOJ 1193】 [HNOI2006]马步距离
1193: [HNOI2006]马步距离 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 919 Solved: 419 [ Submit][ ...
- 1193: [HNOI2006]马步距离
题目链接 题目大意:求出从点 p 到点 s 至少需要经过多少次马步移动 题解:直接搜会T,贪心会WA--正解是大范围贪心,小范围暴力--有种取长补短的感觉--Orz 我的收获:乱搞出奇迹-- #inc ...
- BZOJ1193: [HNOI2006]马步距离
易水人去,明月如霜. Description 在国际象棋和中国象棋中,马的移动规则相同,都是走"日"字,我们将这种移动方式称为马步移动.如图所示, 从标号为 0 的点出发,可以经过 ...
- bzoj1193 [HNOI2006]马步距离 构造+枚举
首先肯定不是直接按xy跳,因为会有几个特殊位置: (0,0)到(1,1) (0,0)到(1,0) (0,0)到(4,4) 正常逼近是那长距离跳2,短距离跳1,但在这几个类似的点上是不行的 首先,一定会 ...
- BZOJ 1193 HNOI2006 马步距离
看了题解的... 因为只想了BFS的思路,但是x,y的范围太大了. BFS一定会爆空间的. 喵了看了看题解,发现还是我too young too simple~ 不水了,总结题目思路: 首先题目x,y ...
- bzoj1193:马步距离
题目描述 在国际象棋和中国象棋中,马的移动规则相同,都是走"日"字,我们将这种移动方式称为马步移动.如图所示, 从标号为 0 的点出发,可以经过一步马步移动达到标号为 1 的点,经 ...
最新文章
- R构建多项式回归模型(Polynomial Regression)
- 使用python抓取百度漂流瓶妹纸照片
- java 二叉堆_二叉堆(三)之 Java的实现
- 浅析JAVA_HOME,CLASSPATH和PATH的作用
- 通用shellcode代码
- RxSwift之UI控件UITableView扩展的使用
- [Leedcode][JAVA][第5题][最长回文子串][数组][动态规划]
- 网站收录工具(php导航自动收录源码)_10步把企业网站优化做到极致,SEO优化的核心知识...
- Linux全能终端,【MobaXterm】Windows全能终端神器—MobaXterm
- linux下将编译错误输出到一个文本文件
- 靠谱前端必上网站大全
- visio作图的一系列坑
- CV520国产兼容应用及说明
- Maven 环境变量配置
- html设置鼠标移动变色,table行随鼠标移动变色示例
- django接入facebook登陆设置
- Contrastive Search Decoding——一种对比搜索解码文本生成算法
- 第 7 章 —— 代理模式
- Linux I/O编程 实验内容
- 整理的strace命令参考文档
热门文章
- matlab m文件的编写,Matlab实验报告(四)M文件的编写.doc
- java 堆_JAVA学习笔记 07——堆、栈和垃圾回收机制
- 单变量和多变量财务预警模型_SPSS数据分析,基于判别分析上市公司财务危机预警分析...
- 移动端html5广告的优势,h5手机端开发的优势都有哪些呢
- asp连接mysql oledb_provider=microsoft.jet.oledb……数据库连接方法的疑惑?
- python捕获异常装饰器_python异常装饰器--比较全的版本了
- 0018计算机基础知识,0018 0019计算机应用基础上机试题
- 计算机图案填充的两种方法,计算机图形学课件 第9讲 区域填充和字符处理.ppt...
- 51单片机外部中断实验 设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管
- matlab基础试题,MATLAB基础试题题目及答案,课程2020最新期末考试题库,章节测验答案...