ACMP 555: различия между версиями

Материал из Олимпиадное программирование в УлГТУ
Перейти к навигации Перейти к поиску
(Новая страница: «== Ссылка на задачу == * [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.