Изменения

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

R2Cmax

136 байт добавлено, 15:18, 22 мая 2016
Эффективное решение
Допустим мы посчитали динамику для <tex>i</tex> работ. Теперь надо пересчитать её для <tex>(i + 1)</tex>-ой работы. Переберём время выполнения работ на первом станке и посчитаем какое минимально время выполнения мы можем получить при на втором станке при фиксированном первом времени. Так как <tex>(i + 1)</tex>-ю работу мы можем выполнить либо на первом станке, либо на втором, то <tex> dp[i + 1][j + p_1[i + 1]]</tex> надо прорелаксировать значением <tex>dp[i][j] </tex>, что соответсвует выполнению работы на первом станке. А <tex>dp[i + 1][j] </tex> релаксируем значением <tex> dp[i][j]+p_2[i + 1]</tex> (выполнение на втором станке).
 
Таким образом:
<tex>dp[i + 1][j] = \min
\begin{cases}
dp[i][j] + p_2[i + 1]\\
dp[i][j - p_1[i + 1]]\\
\end{cases}
</tex>
Тогда ответом на задачу будет минимум среди всех максимумов из <tex>j</tex> и <tex>dp[n][j]</tex>.
212
правок

Навигация