Доброго времени суток.
Подскажите примерный план решение следующей задачи:
Захар очень любит двоичные последовательности, особенно ему нравится их исследовать. У Захара также есть несколько любимых натуральных чисел, например, ему очень нравятся числа N и K. Как-то раз Захар понял, что хочет исследовать двоичные последовательности длины N, в которых каждая непрерывная подстрока, содержащая только единицы, имеет длину ровно K (последовательности, состоящие только из нулей, являются таковыми). Двоичная последовательность – последовательность, содержащая только нули и единицы. Подстрока – некоторое количество непрерывно идущих символов последовательности. Например, если N = 5, а K = 2, то существует 6 последовательностей, которые удовлетворяют этим требованиям: 00000, 11000, 01100, 00110, 00011, 11011.
Прежде чем исследовать эти последовательности, Захар решил посчитать их количество. Так как Захар очень занят исследованием других двоичных последовательностей, он попросил вас помочь ему.
Формат файла входных данных:
В первой строке входных данных содержатся натуральные числа N и K, 1 <= K <= N <= 50.
Формат файла выходных данных:
Выведите количество двоичных последовательностей, в которых каждая подстрока, содержащая только единицы, имеет длину ровно K.
Гарантируется, что ответ влезает в 64-х битный тип данных (long long в C++ или int64 в Pascal).
Я думал делать так: брать строку, состоящую из нулей в количестве N, а затем заменять нули на единицы в количестве k, перемещаясь по массиву символов, предварительно увеличивая счетчик значений. Только вот некоторые моменты не задались.
Я бы построил 2 бинарных дерева(от 1 и от 0 соответственно) Вот примерный псевдокод
если текущийУзел равен 0, то
если N - текущаяВысотаДерева > K, то
следующие узлы могут быть как 1 так и 0(добавляем оба)
в противном случае
следующий узел равен 0
в противном случае(текущийУзел == 1)
если по ребру количество единиц < K, то
следующий узел равен 1
в противном случае
следующий узел равен 0
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Приветствую всех! Читаю у Брюса Эккеля про дженерики, попался в качестве примера такой код:
Собственно, есть необходимость шифровать базу данных, сейчас работает так - все данные в бд зашифрованы, но сейчас все на SQLLiteБыло решено перевести...
ЗдравствуйтеКак посчитать аналитически число вариантов размена 100 рублей монетами по 10, 5 и 2 рубля? Как выглядит код прямого перебора?