题目背景
《爱与愁的故事第三弹·shopping》娱乐章。
调调口味来道水题。
题目描述
爱与愁大神坐在公交车上无聊,于是玩起了手机。一款奇怪的游戏进入了爱与愁大神的眼帘:***(游戏名被打上了马赛克)。这个游戏类似象棋,但是只有黑白马各一匹,在点x1,y1和x2,y2上。它们得从点x1,y1和x2,y2走到1,1。这个游戏与普通象棋不同的地方是:马可以走“日”,也可以像象走“田”。现在爱与愁大神想知道两匹马到1,1的最少步数,你能帮他解决这个问题么?
输入格式
第1行:两个整数x1,y1
第2行:两个整数x2,y2
输出格式
第1行:黑马到1,1的步数
第2行:白马到1,1的步数
输入输出样例
输入 #1
12 16
18 10
输出 #1
8
9
是一道很水的模板题
代码如下:
from collections import deque
for _ in range(2):
x, y = map(int, input().split())
q = deque([(1, 1, 0)])
v = [[0] * 200 for _ in range(200)]
while q:
m, n, s = q.popleft()
if m == x and n == y:
print(s)
break
for i, j in [(1, -2), (1, 2), (2, -2), (2, -1), (2, 1), (2, 2),
(-1, -2), (-1, 2), (-2, -1), (-2, 1), (-2, -2), (-2, 2)]:
a, b = m + i, n + j
if 1 <= a < 100 and 1 <= b < 100 and v[a][b] == 0:
v[a][b] = 1
q.append((a, b, s + 1))