Информатика, задание 23 ЕГЭ-2027: графы — число путей и оптимальный путь

Задание № 23 ЕГЭ-2027 по информатике — новая тема «Графы»: число путей и оптимальный путь в ориентированном ациклическом графе. Ниже — порядок решения из пяти ступеней, 10 авторских примеров с разбором и типичные ошибки.

Подготовка с «Рангом»

«Ранг» — тренажёр ЕГЭ по номерам заданий: условие, проверка ответа сразу и разбор. Пробная неделя — бесплатно, без карты.

Начать бесплатную неделю

Решить в тренажёре · Не знаешь, с какого задания начинать? Пройди бесплатный тест — 10 минут, без регистрации

Что проверяет задание 23

Предмет
Информатика (КЕГЭ, компьютерная форма)
Номер задания
23 — графы (новое в ЕГЭ-2027)
Что нужно уметь
считать число путей и находить оптимальный (кратчайший или самый длинный) путь в ориентированном ациклическом графе — вручную по схеме и программой по файлу рёбер
Что писать в ответе
целое число
Баллы
1 первичный балл
Темы
ориентированный ациклический граф, топологический порядок, динамическое программирование на графе, число путей, оптимальный путь
Источник формулировки
спецификация и проект демоверсии ФИПИ ЕГЭ-2027 (inf_11_2027); структура — предварительная, сверка после утверждения

Как решать задание 23: пять ступеней

  1. Прочитай вопрос: что ищем — число путей, кратчайший или самый длинный путь, есть ли обязательная или запрещённая вершина.
  2. Убедись, что граф ациклический, и расставь вершины в порядке следования рёбер (топологический порядок): каждое ребро идёт «вперёд».
  3. Число путей: у начальной вершины 1, у каждой следующей — сумма значений вершин, из которых в неё ведут рёбра. Через обязательную вершину — произведение «до» и «после».
  4. Оптимальный путь: best[начало] = 0, дальше best[v] = min (или max) по рёбрам u → v из best[u] + вес. Для файла на тысячи рёбер — короткая программа на Python.
  5. Сверь ответ с вопросом: целая часть или вся длина, путь именно из той вершины и в ту, которые названы.

10 авторских примеров из банка «Ранга»

Условия составлены «Рангом», ответ у каждого примера посчитан программой двумя независимыми способами. Сначала реши — потом раскрой разбор.

Пример 1

На схеме дорог между городами А, Б, В, Г, Д, Е, Ж, З, И все дороги односторонние; ниже перечислены все дороги (запись «X→Y» — дорога из X в Y): А→Б; А→Г; Б→В; Б→Д; В→Д; Г→Е; Г→Ж; Д→Е; Д→З; Е→Ж; Е→З; Ж→З; Ж→И; З→И. Сколько существует различных путей из города А в город И?

Показать ответ и разбор

Ответ: 13

  1. Шаг 1. Число путей в город — сумма чисел путей в города, из которых в него ведёт дорога. Для начального города А: 1.
  2. Шаг 2. Идём по городам в порядке дорог: Б = А = 1; В = Б = 1; Г = А = 1; Д = Б + В = 2; Е = Г + Д = 3; Ж = Г + Е = 4; З = Д + Е + Ж = 9; И = Ж + З = 13.
  3. Шаг 3. В конечном городе И получилось 13 — это и есть ответ.
  4. Шаг 4. Проверка: полный перебор путей программой дал то же число — 13.

Авторский пример «Ранга», не ФИПИ.

Пример 2

На схеме дорог между городами А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М, Н все дороги односторонние; ниже перечислены все дороги (запись «X→Y» — дорога из X в Y): А→В; А→Г; Б→Д; В→Д; В→Е; Г→Е; Г→Ж; Д→Е; Д→Ж; Е→Ж; Е→И; Ж→З; З→И; З→К; И→К; И→М; К→Л; К→М; Л→Н; М→Н. Сколько существует различных путей из города А в город Н, проходящих через город В?

Показать ответ и разбор

Ответ: 21

  1. Шаг 1. Число путей в город — сумма чисел путей в города, из которых в него ведёт дорога. Для начального города А: 1.
  2. Шаг 2. Идём по городам в порядке дорог: Б = 0; В = А = 1; Г = А = 1; Д = Б + В = 1; Е = В + Г + Д = 3; Ж = Г + Д + Е = 5; З = Ж = 5; И = Е + З = 8; К = З + И = 13; Л = К = 13; М = И + К = 21; Н = Л + М = 34.
  3. Шаг 3. Путь обязан пройти через В: путей до В — 1, путей от В до Н (считаем так же, начав с 1 в В) — 21. Перемножаем: 1 · 21 = 21.
  4. Шаг 4. Проверка: полный перебор путей программой дал то же число — 21.

Авторский пример «Ранга», не ФИПИ.

Пример 3

На схеме дорог между городами А, Б, В, Г, Д, Е, Ж, З, И, К, Л все дороги односторонние; ниже перечислены все дороги (запись «X→Y» — дорога из X в Y): А→Б; А→Г; Б→Г; В→Г; В→Д; Г→Е; Г→Ж; Д→Е; Е→Ж; Ж→З; Ж→И; З→И; И→К; К→Л. Сколько существует различных путей из города А в город Л?

Показать ответ и разбор

Ответ: 8

  1. Шаг 1. Число путей в город — сумма чисел путей в города, из которых в него ведёт дорога. Для начального города А: 1.
  2. Шаг 2. Идём по городам в порядке дорог: Б = А = 1; В = 0; Г = А + Б + В = 2; Д = В = 0; Е = Г + Д = 2; Ж = Г + Е = 4; З = Ж = 4; И = Ж + З = 8; К = И = 8; Л = К = 8.
  3. Шаг 3. В конечном городе Л получилось 8 — это и есть ответ.
  4. Шаг 4. Проверка: полный перебор путей программой дал то же число — 8.

Авторский пример «Ранга», не ФИПИ.

Пример 4

На схеме дорог между городами А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М, Н все дороги односторонние; ниже перечислены все дороги (запись «X→Y» — дорога из X в Y): А→Б; А→Г; Б→В; Б→Д; В→Д; В→Е; Г→Е; Д→Ж; Д→З; Е→Ж; Е→З; Ж→И; З→И; И→Л; К→Л; Л→М; Л→Н; М→Н. Сколько существует различных путей из города А в город Н, проходящих через город З?

Показать ответ и разбор

Ответ: 8

  1. Шаг 1. Число путей в город — сумма чисел путей в города, из которых в него ведёт дорога. Для начального города А: 1.
  2. Шаг 2. Идём по городам в порядке дорог: Б = А = 1; В = Б = 1; Г = А = 1; Д = Б + В = 2; Е = В + Г = 2; Ж = Д + Е = 4; З = Д + Е = 4; И = Ж + З = 8; К = 0; Л = И + К = 8; М = Л = 8; Н = Л + М = 16.
  3. Шаг 3. Путь обязан пройти через З: путей до З — 4, путей от З до Н (считаем так же, начав с 1 в З) — 2. Перемножаем: 4 · 2 = 8.
  4. Шаг 4. Проверка: полный перебор путей программой дал то же число — 8.

Авторский пример «Ранга», не ФИПИ.

Пример 5

На схеме дорог между городами А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М все дороги односторонние; ниже перечислены все дороги (запись «X→Y» — дорога из X в Y): А→Б; А→Г; Б→Г; Б→Д; В→Е; Г→Д; Г→Ж; Д→Е; Д→Ж; Е→Ж; Е→И; Ж→З; Ж→И; З→И; З→Л; И→М; К→Л; К→М; Л→М. Сколько существует различных путей из города А в город М?

Показать ответ и разбор

Ответ: 27

  1. Шаг 1. Число путей в город — сумма чисел путей в города, из которых в него ведёт дорога. Для начального города А: 1.
  2. Шаг 2. Идём по городам в порядке дорог: Б = А = 1; В = 0; Г = А + Б = 2; Д = Б + Г = 3; Е = В + Д = 3; Ж = Г + Д + Е = 8; З = Ж = 8; И = Е + Ж + З = 19; К = 0; Л = З + К = 8; М = И + К + Л = 27.
  3. Шаг 3. В конечном городе М получилось 27 — это и есть ответ.
  4. Шаг 4. Проверка: полный перебор путей программой дал то же число — 27.

Авторский пример «Ранга», не ФИПИ.

Пример 6

На схеме дорог между городами А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М, Н все дороги односторонние; ниже перечислены все дороги (запись «X→Y» — дорога из X в Y): А→В; Б→В; Б→Д; В→Д; Г→Ж; Д→Е; Е→Ж; Е→З; Ж→И; Ж→К; З→И; З→К; И→Л; И→М; К→Л; Л→М; Л→Н; М→Н. Сколько существует различных путей из города А в город Н, проходящих через город Л?

Показать ответ и разбор

Ответ: 8

  1. Шаг 1. Число путей в город — сумма чисел путей в города, из которых в него ведёт дорога. Для начального города А: 1.
  2. Шаг 2. Идём по городам в порядке дорог: Б = 0; В = А + Б = 1; Г = 0; Д = Б + В = 1; Е = Д = 1; Ж = Г + Е = 1; З = Е = 1; И = Ж + З = 2; К = Ж + З = 2; Л = И + К = 4; М = И + Л = 6; Н = Л + М = 10.
  3. Шаг 3. Путь обязан пройти через Л: путей до Л — 4, путей от Л до Н (считаем так же, начав с 1 в Л) — 2. Перемножаем: 4 · 2 = 8.
  4. Шаг 4. Проверка: полный перебор путей программой дал то же число — 8.

Авторский пример «Ранга», не ФИПИ.

Пример 7

На схеме дорог между городами А, Б, В, Г, Д, Е, Ж, З, И, К, Л все дороги односторонние; ниже перечислены все дороги (запись «X→Y» — дорога из X в Y): А→Б; А→Г; Б→В; Б→Д; В→Д; В→Е; Г→Е; Г→Ж; Д→Е; Д→З; Е→З; Е→И; Ж→И; З→И; З→К; И→К; К→Л. Сколько существует различных путей из города А в город Л?

Показать ответ и разбор

Ответ: 17

  1. Шаг 1. Число путей в город — сумма чисел путей в города, из которых в него ведёт дорога. Для начального города А: 1.
  2. Шаг 2. Идём по городам в порядке дорог: Б = А = 1; В = Б = 1; Г = А = 1; Д = Б + В = 2; Е = В + Г + Д = 4; Ж = Г = 1; З = Д + Е = 6; И = Е + Ж + З = 11; К = З + И = 17; Л = К = 17.
  3. Шаг 3. В конечном городе Л получилось 17 — это и есть ответ.
  4. Шаг 4. Проверка: полный перебор путей программой дал то же число — 17.

Авторский пример «Ранга», не ФИПИ.

Пример 8

На схеме дорог между городами А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М все дороги односторонние; ниже перечислены все дороги (запись «X→Y» — дорога из X в Y): А→Б; А→Г; Б→В; В→Д; В→Е; Г→Д; Г→Е; Д→Е; Е→З; Е→И; Ж→К; З→И; З→Л; И→К; К→Л; Л→М. Сколько существует различных путей из города А в город М, проходящих через город И?

Показать ответ и разбор

Ответ: 8

  1. Шаг 1. Число путей в город — сумма чисел путей в города, из которых в него ведёт дорога. Для начального города А: 1.
  2. Шаг 2. Идём по городам в порядке дорог: Б = А = 1; В = Б = 1; Г = А = 1; Д = В + Г = 2; Е = В + Г + Д = 4; Ж = 0; З = Е = 4; И = Е + З = 8; К = Ж + И = 8; Л = З + К = 12; М = Л = 12.
  3. Шаг 3. Путь обязан пройти через И: путей до И — 8, путей от И до М (считаем так же, начав с 1 в И) — 1. Перемножаем: 8 · 1 = 8.
  4. Шаг 4. Проверка: полный перебор путей программой дал то же число — 8.

Авторский пример «Ранга», не ФИПИ.

Пример 9

Задание выполняется с использованием прилагаемого файла. В текстовом файле содержится описание ациклического ориентированного взвешенного графа. В каждой строке файла записаны три натуральных числа L, M и W — номера вершин графа и вес ребра, ведущего из вершины L в вершину M. Количество строк в файле равно количеству рёбер графа; две вершины не соединены более чем одним ребром. Найди и запиши в ответе длину самого длинного пути из вершины с номером 1 в вершину с номером 852. Существование хотя бы одного такого пути гарантируется. Под длиной пути понимается сумма весов входящих в него рёбер. Вершины графа пронумерованы натуральными числами от 1 до 1100; 1 ≤ W ≤ 100. Значения в строке разделены символом табуляции.

Файл к примеру (23.txt)

Показать ответ и разбор

Ответ: 55012

  1. Шаг 1. Граф ациклический, поэтому самый длинный путь ищется динамикой: best[v] = max(best[u] + w) по всем рёбрам u → v.
  2. Шаг 2. Вершины обходятся в топологическом порядке: к моменту расчёта v все её предшественники уже посчитаны.
  3. Шаг 3. Алгоритм Дейкстры здесь не годится — он ищет кратчайший путь; для длинного пути нужна именно динамика по порядку.
  4. Шаг 4. В графе 1100 вершин и 4382 рёбер. Динамика по топологическому порядку даёт длину самого длинного пути 55012. Ответ: 55012.
from graphlib import TopologicalSorter
edges = [tuple(map(int, s.split())) for s in open('23.txt')]
prev = {}
for a, b, w in edges: prev.setdefault(b, []).append((a, w)); prev.setdefault(a, [])
best = {1: 0}
for v in TopologicalSorter({v: [a for a, _ in p] for v, p in prev.items()}).static_order():
    c = [best[a] + w for a, w in prev[v] if a in best]
    if c and v != 1: best[v] = max(c)
print(best[N])  # N — номер конечной вершины из условия

Авторский пример «Ранга», не ФИПИ.

Пример 10

Задание выполняется с использованием прилагаемого файла. В текстовом файле содержится описание ациклического ориентированного взвешенного графа. В каждой строке файла записаны три натуральных числа L, M и W — номера вершин графа и вес ребра, ведущего из вершины L в вершину M. Количество строк в файле равно количеству рёбер графа; две вершины не соединены более чем одним ребром. Найди и запиши в ответе длину самого длинного пути из вершины с номером 1 в вершину с номером 772. Существование хотя бы одного такого пути гарантируется. Под длиной пути понимается сумма весов входящих в него рёбер. Вершины графа пронумерованы натуральными числами от 1 до 1547; 1 ≤ W ≤ 100. Значения в строке разделены символом табуляции.

Файл к примеру (23.txt)

Показать ответ и разбор

Ответ: 79608

  1. Шаг 1. Граф ациклический, поэтому самый длинный путь ищется динамикой: best[v] = max(best[u] + w) по всем рёбрам u → v.
  2. Шаг 2. Вершины обходятся в топологическом порядке: к моменту расчёта v все её предшественники уже посчитаны.
  3. Шаг 3. Алгоритм Дейкстры здесь не годится — он ищет кратчайший путь; для длинного пути нужна именно динамика по порядку.
  4. Шаг 4. В графе 1547 вершин и 6172 рёбер. Динамика по топологическому порядку даёт длину самого длинного пути 79608. Ответ: 79608.
from graphlib import TopologicalSorter
edges = [tuple(map(int, s.split())) for s in open('23.txt')]
prev = {}
for a, b, w in edges: prev.setdefault(b, []).append((a, w)); prev.setdefault(a, [])
best = {1: 0}
for v in TopologicalSorter({v: [a for a, _ in p] for v, p in prev.items()}).static_order():
    c = [best[a] + w for a, w in prev[v] if a in best]
    if c and v != 1: best[v] = max(c)
print(best[N])  # N — номер конечной вершины из условия

Авторский пример «Ранга», не ФИПИ.

Типичные ошибки в задании 23

  • Считают число путей «на глаз» по схеме и теряют пути через боковые вершины — надёжнее таблица по порядку вершин.
  • При обязательной вершине складывают числа путей «до» и «после» вместо того, чтобы перемножить.
  • Ищут самый длинный путь алгоритмом Дейкстры — он годится только для кратчайшего пути с неотрицательными весами.
  • Обходят вершины в порядке номеров, а не в топологическом порядке: в файле номера вершин перемешаны.
  • Читают файл с ошибкой формата (табуляция, пустая последняя строка) и теряют рёбра.
  • Записывают в ответ не ту величину: длину вместо целой части, путь из другой вершины.

Это про тебя?

Это не наши слова: так пишут сами выпускники. Три причины бросить подготовку — и что с ними делает эта страница.

  • «ничего не успевает ни смотреть, ни прорешивать, для неё большой объём оказался»Здесь не весь курс: один номер задания, пять ступеней и десять примеров. Это один вечер, а не «выучить всё к июню».
  • «лучше с дедлайнами»Срок ставит «Ранг»: после бесплатного теста появляется план на неделю по твоим провалённым номерам. Держаться чужого срока проще, чем заставлять себя самому.
  • «Много воды, много времени отнимают беспонтовые шутки»Воды нет: разбор, пример, ошибка — и следующая задача. Ни вебинаров на три часа, ни «мотивации» между делом.

Проверить себя на задании 23

Решить в тренажёре

Пройти бесплатный тест — 10 минут

Частые вопросы про задание 23 ЕГЭ-2027 по информатике

Что проверяет задание 23 ЕГЭ-2027 по информатике?
По спецификации ФИПИ 2027 года задание 23 — новая тема «Графы»: поиск оптимального (кратчайшего или самого длинного) пути и подсчёт числа путей в ориентированном ациклическом графе. В ответе — целое число.
Какой номер было у задания про анализ хода исполнения алгоритма?
В ЕГЭ-2026 «анализ хода исполнения алгоритма» был заданием 23, в ЕГЭ-2027 это задание 13; его разбор — на странице /zadaniya/informatics/23/.
Как решать задание 23 ЕГЭ-2027 по информатике?
Число путей: число путей в вершину равно сумме чисел путей в её предшественников; считать по порядку от начала. Оптимальный путь в ациклическом графе: топологическая сортировка и динамика best[v] = min/max(best[u] + w). Для файла на тысячи рёбер — короткая программа.
Это официальные задания ФИПИ?
Нет. На странице авторские тренировочные задания в формате ЕГЭ-2027; ответ каждого посчитан программой двумя независимыми способами.
Где потренироваться на задании 23?
Кнопка «Решить в тренажёре» ведёт в тренажёр «Ранга»: условие открыто, краткий ответ проверяется сразу, к задачам с файлом файл прилагается.

Соседние задания

Номера экзамена идут подряд, и подготовка идёт так же. Рядом — разборы соседних номеров этого предмета: то же устройство страницы, другая тема и другой порядок решения.

Читать дальше в блоге «Ранга»

Все статьи блога «Ранга» о подготовке к ЕГЭ — расписание, шкалы перевода баллов, планы подготовки и разборы для родителей.

Задания на странице — авторские тренировочные, в формате ЕГЭ. Это не официальные задания ФИПИ и не их копии. Формулировки заданий приведены по кодификатору и спецификации ФИПИ ЕГЭ-2026; перед индексацией страницы сведения сверяются с публикациями ФИПИ и Рособрнадзора. Мы не обещаем конкретных баллов: результат зависит от твоей работы.