ヘビとはしご遊び
白駿16928
100号車に到着するためには、最低何回かサイコロを投げます.
ゲームボードの状態を取得するには、100番までにサイコロを投げる回数の最高値が必要です.
にゅうしゅつりょく
入出力3 732 6242 6812 9895 1397 2593 3779 2775 1949 4767 1734 98526 8026 7251 1939 1137 2981 359 579 2353 743 3377215
方法
:bfsを使用します.梯子と蛇のためのディックラウンジを作り、その数が出たときに対応する数に移動します.
知るところ
コード#コード#
from collections import deque
def bfs(ladder, snake, visited):
q = deque()
q.append(1)
visited[1] = 0
while q:
x = q.popleft()
if x==100:
print(visited[100])
return
for i in range(6, 0, -1):
move = x+i
if move <= 100:
if move in ladder and visited[ladder[move]] == -1:
visited[ladder[move]] = visited[x]+1
q.append(ladder[move])
if move not in ladder and move not in snake and visited[move] == -1:
visited[move] = visited[x]+1
q.append(move)
if move in snake and visited[snake[move]] == -1:
visited[snake[move]] = visited[x]+1
q.append(snake[move])
n, m = map(int, input().split())
ladder = {}
snake = {}
for _ in range(n):
s, e = map(int, input().split())
ladder[s] = e
for _ in range(m):
s, e = map(int, input().split())
snake[s] = e
visited = [-1]*101
bfs(ladder, snake, visited)
Reference
この問題について(ヘビとはしご遊び), 我々は、より多くの情報をここで見つけました https://velog.io/@sezeom/뱀과-사다리-게임テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol