ACMP 631: различия между версиями
Перейти к навигации
Перейти к поиску
Ctrlalt (обсуждение | вклад) (Новая страница: «== Ссылка на задачу == * [http://acmp.ru/?main=task&id_task=631 ACMP #631 — Отгадай число] == Комментарии == Неоп…») |
Ctrlalt (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
== Ссылка на задачу == | == Ссылка на задачу == | ||
* [http://acmp.ru/?main=task&id_task=631 ACMP #631 — Отгадай число] | * [http://acmp.ru/?main=task&id_task=631 ACMP #631 — Отгадай число] | ||
== Похожие задачи == | |||
* [[Интернет-олимпиада 25.03.2006, усложнённый уровень, E]] | |||
== Комментарии == | == Комментарии == |
Текущая версия от 12:48, 11 января 2015
Ссылка на задачу
Похожие задачи
Комментарии
Неоптимальное решение за O(N2):
- Вид подзадачи: d[i] — минимальное количество конфет для отгадывания числа i.
- Рекуррентная формула: d[i] = min(max(d[i - j] + 2, d[j] + 1)), где j ∈ 1..(i - 1).
- База рекурсии: d[1] = 0.
- Вид ответа: d[n]. Сложность O(N2).
Решение за O(N):
- Вид подзадачи: d[i] — минимальное количество конфет для отгадывания числа i; m[j] — максимальное число, для отгадывания которого нужно j конфет.
- Рекуррентная формула: d[i] = max(d[i - x] + 2, d[x] + 1), где x = m[d[i - 1] - 1]).
- База рекурсии: d[] = {0, 0, 2, 3, ...}; m[] = {1, 0, 2, 3, ...}.
- Вид ответа: d[n]. Сложность O(N).