NOI 2.5.917 Knight Moves解答(C++)
发布时间
阅读量:
阅读量
NOI2.5.917 Knight Moves题解(C++)
题目
背景
确实,国际象棋领域中技艺高超的选手索穆罗洛夫先生曾声称,除他之外,无人能够如此迅速地完成骑士在棋盘上的位置转换。你是否能够超越他呢?
问题
你的目标是设计一款程序,用于计算骑士从某一位置移动至另一位置所需的最少步数,从而为你提供超越Somurolov的可能性。
对于未曾接触过国际象棋的用户而言,骑士可能的移动方式如图1所示。

输入内容
输入数据以单独一行中所包含的场景数量n作为起始。
随后依次为n个不同的场景。每个场景由三行整数构成。第一行用于确定棋盘一侧的长度l(4 <= l <= 300),整个棋盘的大小为l乘l。第二行与第三行各包含一对整数{0,…,l-1} * {0,…,l-1},分别表示骑士在棋盘上的初始位置与目标位置。这些整数之间通过单个空格进行分隔。可以确保这些坐标在该场景对应的棋盘范围内是合法的。
输出要求
针对每一个输入场景,需要计算出从初始位置移动至目标位置所需的最少骑士步数。若初始位置与目标位置相同,则步数应为零。每
全部评论 (0)
还没有任何评论哟~
