Темы --> Информатика --> Алгоритмы --> Динамическое программирование --> Динамическое программирование: один параметр
---> 49 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 4 5 6 7 8 9 10 >> Отображать по:

Вася-первоклассник, поднимаясь по лесенке из N ступенек, каждым шагом либо наступает на следующую ступеньку, либо через одну ступеньку. При этом он считает сумму последних цифр ступенек, на которые он наступал. Какое минимальное число он может получить, попав на последнюю ступеньку?

Входные данные

Вводится одно число N, не превосходящее 1000.

Выходные данные

Выведите минимальную сумму, которую мог получить Вася.

Примеры
Входные данные
3
Выходные данные
4
Входные данные
6
Выходные данные
12
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Вася очень торопится домой, поэтому поднимаясь по лестнице из N ступенек он каждый раз перепрыгивает через одну или две ступеньки (то есть сначала он прыгает на 2-ю или на 3-ю ступеньку, со 2-й он может прыгнуть на 4-ю или на 5-ю и т.д.) Требуется определить количество способов, которыми он может попасть на последнюю, N-ю ступеньку.

Входные данные

Вводится одно натуральное число N, не превосходящее 40.

Выходные данные

Выведите одно число - искомое количество способов.

Примеры
Входные данные
4
Выходные данные
1
Входные данные
5
Выходные данные
2
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Вася каждый день поднимается по одной и той же лестнице. Одним шагом он может встать на следующую ступеньку или перешагнуть через одну ступеньку. Он уже знает, сколькими способами он может подняться на верхнюю ступеньку. Но недавно он обнаружил, что некоторые ступеньки обветшали, и ступать на них небезопасно. Он составил список таких ступенек, и теперь интересуется, сколькими способами можно подняться по лестнице, не наступая на эти ступеньки.

Входные данные

В первой строке вводится одно натуральное число N (N ≤ 40): количество ступенек.

Во второй строке вводится одно натуральное число K (K ≤ N): количество опасных ступенек.

В третьей строке вводятся K различных натуральных чисел в диапазоне от 1 до N: номера опасных ступенек.

Выходные данные

Выведите одно число: количество способов попасть на N-ю ступеньку.

Примеры
Входные данные
10
3
5 1 2
Выходные данные
0
Входные данные
3
1
2
Выходные данные
1
Входные данные
7
2
3 5
Выходные данные
2
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Петя в очередной купил себе набор из кубиков. На этот раз он выстроил из них настоящую крепость — последовательность из N столбиков, высота каждого столбика составляет Ai кубиков.

Вскоре ему стало интересно, насколько его крепость защищена от жуликов и воров. Для этого он ввел понятия башни. Башней называется любая последовательность из K столбиков подряд (где K — любимое число Пети). Защищенность башни определяется как суммарная высота всех столбиков этой башни (чем она больше, тем громаднее и ужаснее она кажется), умноженная на минимум высоты столбиков башни (т.к. враги, очевидно, будут пытаться проникнуть через самое слабое место башни). Неприступность крепости определяется как сумма защищенностей каждой из башен.

Петя решил как можно скорее посчитать, какова же неприступность его крепости. Однако вскоре он понял, что недостаточно знать высоту каждого из столбиков. В зависимости от того, как сгруппировать столбики в башни, получится разный результат. Разумеется, Петя выберет то разбиение на башни, при котором неприступность будет максимальна.

Петя успешно справился со своей задачей, но теперь Правительство Флатландии решило защитить свой горный курорт. Правительство уже построило крепость из кубиков (просто кубики были побольше). Теперь вы должны помочь Правительству посчитать неприступность этой крепости. Единственная трудность состоит в том, что у Правительства было очень много денег, и поэтому крепость была построена очень длинная.

Входные данные

В первой строке входного файла содержатся число N — количество столбиков в крепости и число K — любимое число Пети (1 ≤ K ≤ N ≤ 1000). Далее на следующей строке содержатся N целых чисел, обозначающих Ai (1 ≤ Ai ≤ 103).

Выходные данные

На первой строке выведите число Q — количество башен в оптимальном разбиении. Далее выведите Q чисел — номера первых столбиков каждой башни.

Гарантируется, что в оптимальном разбиении неприступность крепости не превосходит 2 × 109.

Примеры
Входные данные
1 1
1
Выходные данные
1
1 
Входные данные
2 1
1 1000
Выходные данные
2
1 2 
Входные данные
8 3
1 2 3 4 1 6 7 8
Выходные данные
2
2 6 
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Васин дедушка построил забор на даче из того, что попалось под руку. Забор представляет собой ряд из \(N\) досок ширины 10 см, но, возможно, различной высоты.

Теперь Вася хочет покрасить забор таким способом. Он выбирает 5 произвольных подряд идущих досок и красит их в один цвет. Затем он выбирает 5 любых еще не покрашенных идущих подряд досок и красит их в другой цвет. И так продолжает до тех пор, пока может выбрать 5 подряд идущих не покрашенных досок.

Требуется определить, какую наибольшую площадь забора он сможет покрасить таким способом.

Входные данные

В первой строке входного файла вводится одно число \(N\) - количество досок.

Во второй строке входного файла вводятся \(N\) чисел - высоты 1-й, 2-й, ..., \(N\)-й досок забора в сантиметрах.

Все числа натуральные и не превосходят 100.

Выходные данные

Выведите одно число: наибольшую покрашенную площадь в квадратных сантиметрах.

Примеры
Входные данные
6
1 2 3 4 5 6
Выходные данные
200
Входные данные
12
2 4 3 7 8 100 92 1 4 2 34 1
Выходные данные
2550

Страница: << 4 5 6 7 8 9 10 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест