[Hnoi2006]马步距离

1285: [Hnoi2006]马步距离

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 36  Solved: 16
[Submit][Status][Web Board]

Description

在国际象棋和中国象棋中,马的移动规则相同,都是走“日”字,我们将这种移动方式称为马步移动。如右图所示,从标号为0的点出发,可以经过一步马步移动达到标号为1的点,经过两步马步移动达到标号为2的点。
任给平面上的两点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

只包含4个整数,它们彼此用空格隔开,分别为xp,yp,xs,ys。并且它们的都小于10000000。

Output

含一个整数,表示从点p到点s至少需要经过的马步移动次数。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

包装类(自动拆箱与自动装箱)

概念&#xff1a; 基本数据类型有8种.基本数据类型效率高,但是功能及其有限,只能做加减乘除运算.为了对基本数据类型进行更多的操作,Java为每种基本数据类型提供了对应的类(包装类)&#xff0c; 作用&#xff1a; 用于基本数据类型与字符串之间的转换 将基本数据类型封装成对象…

php scrscriptipt,XSS挑战之旅闯关笔记

环境自己搭建~~好嚣张&#xff1a;1.http://127.0.0.1:8024/xss/level1.php?nametest 这是URL 看到后面name有参数传递&#xff0c;不多想直接尝试xss。没有任何过滤。payload &#xff1a;http://127.0.0.1:8024/xss/level1.php?name2.http://127.0.0.1:8024/xss/level2.ph…

CentOS7 防火墙规则 (firewalld)

1、firewalld的基本使用启动&#xff1a; systemctl start firewalld查看状态&#xff1a; systemctl status firewalld 停止&#xff1a; systemctl disable firewalld禁用&#xff1a; systemctl stop firewalld2.systemctl是CentOS7的服务管理工具中主要的工具&#xff0c;它…

matlab图像信息熵交叉熵,【机器学习】信息量,信息熵,交叉熵,KL散度和互信息(信息增益)...

首先先强烈推荐一篇外文博客Visual Information Theory这个博客的博主colah是个著名的计算机知识科普达人&#xff0c;以前很是著名的那篇LSTM讲解的文章也是他写的。这篇文章详细讲解了信息论中许多基本概念的前因后果&#xff0c;并且很是的直观用了大量的图片&#xff0c;和…

第2章第1讲数据类型及常量变量

#include"stdio.h"main() {printf("I love music!\n");printf("the music is \"D:\\music\\love.mp3\".\n");} #include "stdio.h" #define PI 3.14 //符号常量 main() {float r,area; …

java嵌套对象,java – 从嵌套流中收集一组对象

我有一个场景,我有两个for循环,一个嵌套在另一个.在内部循环中,对于每次迭代,我都有创建特定类型的新实例所需的信息.我想将代码从for循环更改为使用流,因此我可以将所有对象收集到ImmutableSet中.但是,我无法制作一个编译和工作的版本.下面的示例程序说明了我最接近的尝试.它编…

v$session v$session_wait

(1)v$session v$session视图记录了当前连接到数据库的session信息 ColumnDescriptionSADDRsession addressSIDSession identifierSERIAL#session序列号&#xff0c;当某个session结束&#xff0c;另一个新开始的session使用了前者的sid&#xff0c;则此数值自加1AUDSIDauditing…

数据结构有哪些

概念&#xff1a; 数据结构 : 数据用什么样的方式组合在一起。 数据结构是计算机存储数据的方式&#xff0c;指相互之间存在一种或多种特定关系的数据元素集合 常见数据结构&#xff1a; 数据存储的常用结构有&#xff1a;栈、队列、数组、链表和红黑树。 栈&#xff1a; stack…

matlab自考本科真题,行政管理学自考专科试题及答案

参考答案如下检查髌腱炎患者时可以发现()。A、行政学自股四头肌萎缩B、渗出C、髌反射低下D、Mcmurray试验时有卡嗒声&#xff0f;疼痛患者&#xff0c;管理男&#xff0c;30岁&#xff0c;患甲状腺功能亢进症&#xff0c;突然出现双下肢不能动。检查&#xff1a;双下肢膝腱反射…

php 关于日期的知识总结

1.UNIX时间戳 time() echo time(); 2.UNIX时间戳转换为日期用函数&#xff1a; date() 一般形式&#xff1a;date(Y-m-d H:i:s, 1156219870); 即 echo date(date(Y-m-d H:i:s, time())); 或 $showtime date(Y-m-d H:i:s,time()); 显示结果&#xff1a; 3.日期转换为UNIX时间…

php template strring,PHP字符串函数

<?php $str "THIS is a beautiful world!";//$newstr strstr($str,"is"); //区分大小写的//stristr 表示 $str里面第一次出现"is"的位置和之后的字符串//$newstr stristr($str,"is"); //不区分大小写$newstr stristr($str,&…

Java Calendar 类的时间操作

Java Calendar 类时间操作&#xff0c;这也许是创建和管理日历最简单的一个方案&#xff0c;示范代码很简单。 演示了获取时间&#xff0c;日期时间的累加和累减&#xff0c;以及比较。 原文地址&#xff1a;blog.csdn.NET/joyous/article/details/9630893 注意事项&#xff1a…

Java的异常入门

概念&#xff1a; 异常就是程序出现了不正常的情况&#xff0c;会导致JVM非正常停止&#xff0c;语法错误不算异常体系中 异常体系&#xff1a; 编译时异常&运行时异常&#xff1a; 虚拟机默认处理方式&#xff1a; 代码中出现异常&#xff0c;程序会先判断有没有处理异常的…

php是不是面向对象编程,PHP面向对象编程入门

1、常用术语说明class 类object 对象new 实例化member 类成员method 方法&#xff0c;成员函数property 属性&#xff0c;成员变量constant 类常量2、类的构造class ClassName{ //class关键字加类名//类中只能有三种成员&#xff1a;属性、类常量、方法&#xff0c;不限数量//成…

Java——多线程使用详解

多线程&#xff1a; 多线程就是同时执行多个应用程序&#xff0c;需要硬件的支持同时执行&#xff1a;不是某个时间段同时&#xff0c;cpu切换的比较快&#xff0c;所有用户会感觉是在同时运行 并发与并行&#xff1a; 并行(parallel)&#xff1a;指在同一时刻&#xff0c;有多…

Java面向对象编程思想

面向对象三个特征&#xff1a;封装、继承、多态封装&#xff1a; 语法&#xff1a;属性私有化&#xff08;private&#xff09;、提供相对应的get/set 的方法进行访问(public)、 在set/get的方法中对属性的数据 做相对应的业务逻辑的判断 思想&#xff1a;封装外面的程序…

php边框的颜色 怎么设置,网页中table表格如何修改边框颜色

table表格是网页制作中以前较常使用的一种布局方式&#xff0c;但随着DIVCSS的兴起&#xff0c;table表格已辉煌不在。但它在我们制作网页中也是时有用到。table表格也可以使用DIV一样随意的设置它的边框颜色。下面介绍一下二种方法。方法一&#xff1a;使用CSS代码控制边框颜色…

看懂线程安全

目录&#xff1a; 线程安全线程同步同步代码块同步方法Lock锁线程状态图sleep睡眠等待和唤醒 1. 线程安全 如果有多个线程在同时运行&#xff0c;而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样 的&#xff0c;而且其他的变量的值也和预期的是…

oracle数据库生产,从安装系统到oracle数据库生产环境(centos6.8)搭建

大纲服务器安装JDK配置Oracle数据库安装配置1.安装服务器服务器的安装参考这篇教程关于安装中可能出现的几个问题&#xff0c;在这里进行解决&#xff1a;1、使用u盘安装完后&#xff0c;系统进入GRUB引导&#xff0c;无法启动&#xff1a;解决办法&#xff1a;出现上述状况的原…

WSDL4J解析WSDL文件方法

利用wsdl4j解析WSDL文件 工具&#xff1a;wsdl4j1.6 解析wsdl文件是axis1.4的服务wsdl文件 wsdl文件&#xff1a; <?xml version"1.0" encoding"UTF-8" ?>- <wsdl:definitions targetNamespace"http://localhost:8080/axis/services/SayH…