2.5基本算法之搜索 917:Knight Moves

​​​​​​http://noi.openjudge.cn/ch0205/917/

背景索穆罗洛夫先生确实是一名出色的国际象棋玩家,他声称,除了他之外,没有其他人能如此快速地将骑士从一个位置移动到另一个位置。你能打败他吗?你的任务是编写一个程序来计算骑士从一个点到另一个点所需的最小移动次数,这样你就有机会比索穆洛夫更快。对于不熟悉国际象棋的人,可能的骑士动作如图1所示。

输入:输入以单行上的n个场景开始。接下来是n个场景。每个场景由包含整数的三行组成。第一行指定棋盘一侧的长度l(4<=l<=300)。整个棋盘的大小为l*l。第二行和第三行包含一对整数{0,…,l-1}*{0,…,l-1},指定棋盘上骑士的起始和结束位置。整数由一个空格分隔。您可以假设这些位置是该场景中棋盘上的有效位置。

输出:对于输入的每个场景,您必须计算从起点移动到终点所需的最少骑士移动量。若起点和终点相等,则距离为零。距离必须写在一行上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值