关注
第三题 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 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 秋招开始捡漏了吗 #
6539次浏览 34人参与
# 今年秋招还有金九银十吗 #
15742次浏览 120人参与
# “vivo”个offer #
44794次浏览 303人参与
# 秋招,不懂就问 #
328080次浏览 1971人参与
# 辞职后的日常 #
15191次浏览 83人参与
# 上班后,才发现大学__白学了 #
542次浏览 12人参与
# 打工人的精神状态 #
100206次浏览 1304人参与
# 满帮集团求职进展汇总 #
7566次浏览 70人参与
# 上班到公司第一件事做什么? #
98281次浏览 680人参与
# 一人一个landing小技巧 #
126969次浏览 1462人参与
# 我和mentor的爱恨情仇 #
78860次浏览 434人参与
# 秋招结束之后的日子 #
99539次浏览 1011人参与
# 学历or实习经历,哪个更重要 #
192012次浏览 1026人参与
# 海信求职进展汇总 #
84588次浏览 408人参与
# 实习期间如何提升留用概率? #
189311次浏览 1606人参与
# 被同事甩锅了怎么办 #
24875次浏览 100人参与
# 学历对求职的影响 #
549652次浏览 3901人参与
# 你见过哪些工贼行为 #
31392次浏览 151人参与
# 和mentor 1on1 都聊什么? #
3449次浏览 21人参与
# 校招生月薪1W算什么水平 #
47999次浏览 249人参与
# 你想留在一线还是回老家? #
63491次浏览 537人参与

查看11道真题和解析