Изменения

Перейти к: навигация, поиск

1ripi1sumwc

317 байт добавлено, 14:22, 9 июня 2015
Нет описания правки
====Реализация 2====
Перед началом алгоритма [[Сортировка|отсортируем]] работы по порядку неубывания невозрастания веса.Функция minFreeTime за <tex>O(\log n)</tex> ищем минимальное свободное время на заданном промежутке.  <tex> \mathtt{time} \leftarrow r_10</tex>
<tex> \mathtt{answer} \leftarrow 0</tex>
'''for''' <tex>i \leftarrow 1 </tex> '''to''' <tex>n</tex> '''do'''
'''if''' <tex> \mathtt{time} \leqslant r_{i} </tex> <tex> \leqslant mathtt{time} \leftarrow r_{i}</tex> <tex> j \leftarrow null </tex> <tex> j \mathttleftarrow </tex> minFreeTime(<tex>{r_{i} \ldots time}</tex>) '''if''' <tex>j \neq null </tex> <tex> \mathtt{Answer} \leftarrow \mathtt{Answer} + \mathtt{time} j \cdot w_{i}</tex>
'''else'''
<tex> \mathtt{time} \leftarrow r_i</tex>
<tex> \mathtt{Answer} \leftarrow \mathtt{Answer} + \mathtt{time} \cdot w_{i}</tex>
<tex> \mathtt{time++}</tex>
В начале алгоритма сортируем работы <tex>O(n \log n)</tex> времени. Затем мы тратим <tex>O(n \log n)</tex> на получение ответа. Тогда суммарное время работы алгоритма составит <tex>O(n \log n + n \log n )</tex> что есть <tex>O(n (\log n + 1))</tex> времени.
==См. также==
Анонимный участник

Навигация