ЕГЭ по информатике 2026 · задание 1 из 27
ЕГЭ по информатике 2026, задание 1: графы и кратчайший путь
Задание 1 проверяет умение читать информационную модель: схему дорог, карту, таблицу расстояний или формулу. В 2026 году линия не менялась. Это базовое задание на 1 балл, файл к нему не выдают, обычно хватает 3 минут.
Как выглядит условие
Чаще всего дают пункты и дороги между ними. Нужно найти длину кратчайшего пути между двумя пунктами или число пунктов на таком пути. Дороги бывают двусторонними и односторонними, с весами и без. Иногда вместо схемы — таблица, где пустая клетка или прочерк означает «дороги нет».
Конспект
1. Перенесите данные на черновик. Кружки — пункты, линии — дороги. Подпишите веса.
2. Если таблица, проверьте, симметрична ли она. Если нет — дороги односторонние.
3. Идите от старта. Для маленького графа достаточно перебрать маршруты без циклов. Цикл только удлиняет путь, его можно не рассматривать.
4. Записывайте не «красивый» путь, а минимальную уже найденную длину. Когда появляется более короткий, заменяйте.
5. Перечитайте вопрос: спрашивают длину, число дорог или число промежуточных пунктов? Это разные ответы.
6. Если путь должен проходить через заданный пункт, решайте две отдельные задачи: старт → обязательный пункт и он → финиш. Сумма кратчайших и есть ответ, если других ограничений нет.
Шаблон на Python
На экзамене граф маленький, и ручной перебор часто быстрее. Программа полезна, чтобы не сбиться в таблице с весами. Ниже — Дейкстра для неориентированного взвешенного графа. Рёбра задаются списком A B вес.
import heapq
edges = [
("A", "B", 4),
("A", "C", 2),
("B", "D", 5),
("C", "D", 1),
]
start, goal = "A", "D"
graph = {}
for a, b, w in edges:
graph.setdefault(a, []).append((b, w))
graph.setdefault(b, []).append((a, w)) # уберите строку, если дороги односторонние
dist = {start: 0}
heap = [(0, start)]
while heap:
cur, node = heapq.heappop(heap)
if cur != dist.get(node):
continue
if node == goal:
break
for nxt, w in graph.get(node, []):
nd = cur + w
if nd < dist.get(nxt, 10**9):
dist[nxt] = nd
heapq.heappush(heap, (nd, nxt))
print(dist.get(goal))Если веса все равны 1, тот же ответ даст обход в ширину: длина пути — число рёбер.
Типичные ошибки
- Пропущено направление стрелки на схеме.
- В ответ записано число вершин, хотя спрашивали длину.
- Посчитан путь «через все пункты», хотя такого условия нет.
- Для обязательной вершины взята сумма не кратчайших кусков.
Сверьте готовый ответ с одним явным маршрутом на черновике. Если программа выдала число, которого нет ни у одного пути, где-то лишнее ребро.
Попробуйте объяснить с Мишкой
Бесплатный ИИ-репетитор объяснит любую тему так, как вам понятно — шаг за шагом.
Начать бесплатно