3.
Задание на повторение № 3
Задание
2 Б.
Проанализируй программу:
import heapq
graph \(=\) {\(100\): [(\(12\),\(1.0\))], \(6\): [(\(7\),\(7.0\)),(\(1\),\(1.0\))], \
\(1\): [(\(7\),\(5.5\)),(\(100\),\(12.0\)),(\(4\),\(2.5\))], \(7\): [(\(100\),\(2.0\))], \(4\): [(\(100\),\(8.0\))]}
INF \(=\) float('inf')
dist \(=\) [INF] * \(1001\)
dist[\(1\)] \(= \) \(0.0\)
pq \(=\) [(\(0.0\), \(1\))]
while pq:
d, v \(=\) heapq.heappop(pq)
if d \(>\) dist[v]:
continue
for to, w in graph.get(v,[]):
nd \(=\) d \(+\) w
if nd \(<\) dist[to]:
dist[to] \(=\) nd
heapq.heappush(pq, (nd, to))
print(int(dist[\(100\)]))
graph \(=\) {\(100\): [(\(12\),\(1.0\))], \(6\): [(\(7\),\(7.0\)),(\(1\),\(1.0\))], \
\(1\): [(\(7\),\(5.5\)),(\(100\),\(12.0\)),(\(4\),\(2.5\))], \(7\): [(\(100\),\(2.0\))], \(4\): [(\(100\),\(8.0\))]}
INF \(=\) float('inf')
dist \(=\) [INF] * \(1001\)
dist[\(1\)] \(= \) \(0.0\)
pq \(=\) [(\(0.0\), \(1\))]
while pq:
d, v \(=\) heapq.heappop(pq)
if d \(>\) dist[v]:
continue
for to, w in graph.get(v,[]):
nd \(=\) d \(+\) w
if nd \(<\) dist[to]:
dist[to] \(=\) nd
heapq.heappush(pq, (nd, to))
print(int(dist[\(100\)]))
(Обрати внимание: баллы будут начислены при выборе всех правильных вариантов, их может быть один и больше.)
Вы должны авторизоваться, чтобы ответить на задание. Пожалуйста, войдите в свой профиль на сайте или зарегистрируйтесь.
Вход
или
Регистрация