关注
第三题 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 评论
相关推荐
![](https://static.nowcoder.com/fe/file/oss/icon_job.png)
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 读研or工作,哪个性价比更高? #
24051次浏览 324人参与
# 科大讯飞求职进展汇总 #
258843次浏览 2594人参与
# 如果重来一次你还会读研吗 #
154363次浏览 1691人参与
# 秋招感动瞬间 #
10718次浏览 101人参与
# 阿里巴巴创始人马云回国 #
14109次浏览 87人参与
# 你最满意的offer薪资是哪家公司? #
11811次浏览 109人参与
# 职场新人生存指南 #
195087次浏览 5375人参与
# 文科生还参加今年的春招吗 #
3306次浏览 29人参与
# 长光卫星求职进展汇总 #
27565次浏览 184人参与
# 选择和努力,哪个更重要? #
41944次浏览 471人参与
# 招聘要求与实际实习内容不符怎么办 #
40741次浏览 465人参与
# 打工人的工作餐日常 #
24687次浏览 221人参与
# 机械制造岗投递时间线 #
19306次浏览 324人参与
# 机械人选offer,最看重什么? #
68554次浏览 433人参与
# 影石Insta360求职进展汇总 #
107598次浏览 968人参与
# 机械人怎么评价今年的华为 #
180291次浏览 1484人参与
# 如果再来一次,你还会学硬件吗 #
102738次浏览 1232人参与
# 正在实习的你,有转正机会吗? #
336139次浏览 2690人参与
# 如果公司降薪,你会跳槽吗? #
44457次浏览 349人参与
# 滴!实习打卡 #
554245次浏览 6007人参与