- •Лабораторная №3 Динамическое программирование
- •Взрывоопасность
- •C. Палиндромы
- •Индивидуальные задания
- •1. Вычеркивание цифр
- •2. Задача о рюкзаке
- •3. Очередь
- •4. Восстановление скобок
- •5. Космический мусорщик
- •7. Покупка билетов
- •11. Две стены
- •13. Роботы
- •14. День рождения Иванова
- •16. Копилка
- •17. Возрастающая последовательность
- •18. Взрывоопасность
- •19. Максимальны квадрат
- •22. Лесопилка
Лабораторная №3 Динамическое программирование
-
Input file name:
input.txt
Output file name:
output.txt
Time limit (per test case):
1 sec
Memory limit (per test case):
64 MB
Score:
100 points
Взрывоопасность
На одном из секретных заводов осуществляется обработка радиоактивных материалов, в результате которой образуются радиоактивные отходы двух типов: типа А (особо опасные) и типа Б (неопасные). Все отходы упаковываются в специальные прямоугольные контейнеры одинаковых размеров, после чего эти контейнеры укладываются в стопку один над другим для сохранения. Стопка является взрывоопасной, если в ней соседствуют два ящика с отходами типа А.
Требуется написать программу, которая подсчитывает количество возможных вариантов формирования невзрывоопасной стопки из заданного общего числа контейнеров N.
Входные данные: Во входном файле содержится единственное число N (1£N£81).
Выходные данные: В выходной файл необходимо вывести искомое число вариантов.
-
input.txt
output.txt
4
8
Сумма
Даны N целых чисел. Найти местоположение подпоследовательности подряд идущих чисел с максимальной суммой.
Формат входных данных
Во входном файле в первой строке записано число N — количество чисел (1≤N≤10000). Во второй строке заданы N целых чисел. Каждое из этих чисел не превышает 256.
Формат выходных данных
В выходной файл выведите два числа — номера первого и последнего элементов найденной подпоследовательности.
Примеры
input.txt |
output.txt |
9 0 2 0 4 5 -12 7 -4 9 |
7 9 |
C. Палиндромы
Не пустая строка, содержащая некоторое слово, называется палиндромом, если это слово одинаково читается как слева направо, так и справа налево. Пусть задана строка, в которой записано слово S, состоящее из N (N≤60) прописных букв латинского алфавита. Путем вычеркивания из этого слова некоторого набора символов, можно получить строку, которая будет называться палиндромом.
Требуется написать программу, с помощью которой можно определить, сколько существует способов вычеркивания из заданного слова некоторого (возможно пустого) набора символов, чтобы образованная таким образом строка называлась палиндромом. Способы, отличающиеся порядком вычеркивания символов, считаются одинаковыми.
Пример
-
input.txt
output.txt
BAOBAB
22
Индивидуальные задания
1. Вычеркивание цифр
Все натуральные числа от 1 до N (N≤1000) записали подряд слева направо:
123456789101112131415…N.
Сколько существует способов вычеркнуть все цифры полученного числа, кроме четырех, чтобы оставшиеся цифры образовали (без перестановок) число 2006?
Пример
Input.txt |
Output.txt |
27 |
1 |
В этом примере имеем число 123456789101112131415161718192021222324252627. Число 2006 можем получить одним способом.
