ACMP 555: различия между версиями
Перейти к навигации
Перейти к поиску
Ctrlalt (обсуждение | вклад) (Новая страница: «== Ссылка на задачу == * [http://acmp.ru/?main=task&id_task=555 ACMP #555 — Вычисление сложности программы] == П…») |
(нет различий)
|
Текущая версия от 14:55, 5 августа 2016
Ссылка на задачу
Похожие задачи
Комментарии
Для каждого цикла сохраним номера циклов, зависящих от него. В общем случае граф зависимостей представляет собой лес. Если мы сумеем вычислить, сколько раз выполнялся (с учётом зависящих циклов) корневой цикл каждой компоненты, то произведение этих значений даст ответ.
Будем поддерживать динамику d[i][from] — сколько раз i-й цикл учитывается в ответе, имея переменную >= from. Для from > r[i] значения d[i][from] равны 0. Для 0 <= from <= r[i] значения d[i][from] = Π + d[i][from + 1], где Π — произведение d[j][from] для всех циклов j, зависящих от i.