Количество различных двоичных строк с k сальто

Я пытаюсь решить проблему, когда нам задают двоичную строку длиной N (<10 ^ 5), и нам разрешено ровно X (<10 ^ 5) переворачивать ее, нас спрашивают, сколько разных строк возможно? Я не понимаю об этом, хотя я думаю, что это может быть решено с помощью dp, но не в состоянии прийти с рекурсией. Плз помогите?

Пример: рассмотрим двоичную строку с N = 3, 1 1 1 и X = 2. Новые двоичные строки, которые могут быть сформированы после применения двух переворотов, равны 1 1 1 (дважды перевернули первый / второй / третий бит) 0 0 1 (перевернуто первый и второй бит) 1 0 0 (перевернутый 2-й и 3-й бит) 0 1 0 (перевернутый 1-й и 3-й бит)

Ответы на вопрос(1)

Ваш ответ на вопрос