关注
第三题 0.9 代码
import heapq
T=int(input().strip())
for _ in range(T):
n=int(input().strip())
x,y=0,0
graph={(0,0)}
for i in range(n):
a,b=map(int,input().strip().split())
if b==1:
dx=dy=0
if a==0: dx=-1
elif a==1: dx=1
elif a==2: dy=-1
else:dy=1
x,y=x+dx,y+dy
graph.add((x,y))
if i==n-1:
end=(x,y)
stack=[(0,(0,0))]
used={(0,0)}
while stack:
dis,point=heapq.heappop(stack)
if point==end:
print(dis)
break
for dx,dy in ((-1,0),(1,0),(0,-1),(0,1)):
temp=(point[0]+dx,point[1]+dy)
if temp not in used and temp in graph:
used.add(temp)
heapq.heappush(stack,(dis+1,temp))
查看原帖
1 评论
相关推荐
点赞 评论 收藏
分享
查看3道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习日记 #
4146347次浏览 33218人参与
# 你投了多少家公司?进展是___ #
252696次浏览 1490人参与
# 第3届现代汽车Code Faster急速编程挑战赛 #
27344次浏览 482人参与
# 秋招投递记录 #
429911次浏览 3319人参与
# 你投递的公司有几家约面了? #
175208次浏览 1048人参与
# 城市生存手册 #
1400次浏览 20人参与
# 今年形式下双非本找得到工作吗 #
340034次浏览 1797人参与
# 重来一次,你会对开始求职的自己说 #
55469次浏览 517人参与
# 秋招提前批,你开始投了吗 #
772647次浏览 8500人参与
# 你认为小厂实习有用吗? #
153430次浏览 810人参与
# 实习返校后,你的精神状态是__? #
47792次浏览 174人参与
# 通信/硬件求职避坑tips #
179739次浏览 1177人参与
# 为了找工作你投递了多少公司? #
122745次浏览 774人参与
# 产品实习,你更倾向大公司or小公司 #
234912次浏览 2169人参与
# 这个工作能去吗 #
184290次浏览 961人参与
# 你开始找寒假实习了吗? #
110414次浏览 633人参与
# 聊聊你的职场新体验 #
363986次浏览 1939人参与
# 我的租房踩坑经历 #
232158次浏览 1342人参与
# 实习生的生存小技巧 #
42207次浏览 366人参与
# 如何看待应届生身份? #
261394次浏览 2364人参与
# 你找工作想离家近 or 离家远? #
55256次浏览 403人参与