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

Кузнечик прыгает по столбикам, расположенным на одной линии на равных расстояниях друг от друга. Столбики имеют порядковые номера от 1 до N . В начале Кузнечик сидит на столбике с номером 1. Он может прыгнуть вперед на расстояние от 1 до K столбиков, считая от текущего. Требуется найти количество способов, которыми Кузнечик может добраться до столбика с номером N . Учитывайте, что Кузнечик не может прыгать назад.

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

Входная строка содержит натуральные числа N и K , разделённые пробелом. Гарантируется, что 1 ≤ N , K ≤ 32 .

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

Программа должна вывести одно число: количество способов, которыми Кузнечик может добраться до столбика с номером N .

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

Кузнечик прыгает по столбикам, расположенным на одной линии на равных расстояниях друг от друга. Столбики имеют порядковые номера от 1 до N . В начале Кузнечик сидит на столбике с номером 1. Он может прыгнуть вперед на расстояние от 1 до K столбиков, считая от текущего.

На некоторых столбиках сидят лягушки, которые едят кузнечиков (Кузнечик не должен попадать на эти столбики!). Определите, сколькими способами Кузнечик может безопасно добраться до столбика с номером N . Учитывайте, что Кузнечик не может прыгать назад.

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

Входная строка содержит натуральные числа N и K , разделённые пробелом. Гарантируется, что 1 ≤ N , K ≤ 32 . Во второй строке записано число лягушек L ( 0 ≤ L N - 2 ). В третьей строка записано L натуральных чисел: номера столбиков, на которых сидят лягушки (среди них нет столбиков с номерами 1 и N ).

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

Программа должна вывести одно число: количество способов, которыми Кузнечик может безопасно добраться до столбика с номером N .

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

Назовем подпоследовательностью массива \(a\) непустой массив \(b\) такой, что он может быть получен из массива \(a\) удалением нескольких (возможно, никаких) элементов массива \(a\). Например, массив \([1, 3]\) является попоследовательностью массива \([1, 2, 3]\), но \([3, 1]\) не является.

Назовем подотрезком массива \(a\) непустой массив \(b\) такой, что он может быть получен путем удаления нескольких (возможно, никаких) первых и последних элементов массива \(a\). Например, \([1, 2]\) является подотрезком массива \([1, 2, 3]\), а \([1, 3]\) не является. Несложно заметить, что у массива длины \(n\) ровно \(\frac{n(n + 1)}{2}\) подотрезков.

Назовем массив \(a\) длины \(n\) возрастающим , если для любого \(1 \leq i < n\) выполняется \(a_i < a_{i + 1}\).

Монотонностью массива назовем количество его возрастающих подотрезков.

Дан массив \(a\) длины \(n\). Посчитайте сумму монотонностей по всем его подпоследовательностям. Так как ответ может быть очень большим, выведите его по модулю \(10^9 + 7\).

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

В первой строке задано целое число \(n\) (\(1 \leq n \leq 200\,000\)) — длина массива \(a\).

Во второй строке заданы \(n\) целых чисел (\(1 \leq a_i \leq 200\,000\)) — элементы массива \(a\).

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

Выведите одно целое число — сумму монотонностей всех подпоследовательностей по модулю \(10^9 + 7\).

Примечание

В первом тестовом примере у массива есть \(7\) подпоследовательностей:

  • У массива \([1]\) есть ровно один подотрезок и он является возрастающим.
  • У массива \([2]\) есть ровно один подотрезок и он является возрастающим.
  • У массива \([3]\) есть ровно один подотрезок и он является возрастающим.
  • У массива \([1, 2]\) есть три подотрезка (\([1], [2], [1, 2]\)) и все они являются возрастающими.
  • У массива \([1, 3]\) есть три подотрезка (\([1], [3], [1, 3]\)) и все они являются возрастающими.
  • У массива \([3, 2]\) есть три подотрезка (\([3], [2], [3, 2]\)), но только два из них (\([3]\) и \([2]\)) являются возрастающими.
  • У массива \([1, 3, 2]\) есть шесть подотрезков (\([1], [3], [2], [1, 3], [3, 2], [1, 3, 2]\)) и четыре из них (\([1], [3], [2], [1, 3]\)) являются возрастающими.

Во втором тестовом примере все возрастающие подотрезки всех подпоследовательностей имеют длину \(1\).

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

Назовем число, записанное LED-цифрами, симметричным, если его запись обладает осевой симметрией с вертикальной либо горизонтальной осью. К примеру: 88 – симметричное, 87 – не симметричное, 1338 – симметричное, 258 – не симметричное, 582 – симметричное, 15821 – не симметричное и т.п. Вам даны два числа: A и B , A B . Найти количество симметричных чисел в отрезке [ A , B ] (включая A и B ).

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

В единственной строке записаны через пробел два целых числа: A и B , 0 ≤ A B ≤ 10 18 .

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

Выведите единственное целое число – количество симметричных чисел в отрезке [ A , B ] . Ответ выводить по модулю 10 9 + 7 .

Система оценки

Подзадача 1 (10 баллов): \(a \le b \le 50\).

Подзадача 2 (30 баллов): \(a \le b \le 10^7\).

Подзадача 3 (60 баллов): нет доп. ограничений.

Примеры
Входные данные
1 24
Выходные данные
7

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