| Codeforces Round 1025 (Div. 2) |
|---|
| Закончено |
Моуф устал от тематических задач, поэтому он решил не использовать никаких тем для этой задачи.
Вам дана бинарная$$$^{\text{∗}}$$$ строка $$$s$$$ длиной $$$n$$$. Вам необходимо выполнить следующую операцию ровно $$$k$$$ раз:
Вам нужно подсчитать количество возможных способов выполнить ровно $$$k$$$ операций.
Поскольку ответ может быть очень большим, выведите его по модулю $$$998\,244\,353$$$.
Две последовательности операций считаются различными, если они отличаются по выбранному индексу хотя бы на одном шаге.
$$$^{\text{∗}}$$$Бинарная строка — это строка, состоящая только из символов $$$\mathtt{0}$$$ и $$$\mathtt{1}$$$.
$$$^{\text{†}}$$$Инверсия двоичного символа — это изменение его значения с $$$\mathtt{0}$$$ на $$$\mathtt{1}$$$ или наоборот.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 100$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le k \le n \le 500$$$) — длина бинарной строки $$$s$$$ и количество раз, которое операция должна быть выполнена, соответственно.
Вторая строка каждого набора входных данных содержит бинарную строку $$$s$$$ длиной $$$n$$$, состоящую только из символов $$$\mathtt{0}$$$ и $$$\mathtt{1}$$$.
Гарантируется, что сумма $$$n$$$ не превосходит $$$500$$$ по всем наборам входных данных.
Для каждого набора входных данных выведите одно целое число — количество способов, которыми вы можете выполнить ровно $$$k$$$ операций, по модулю $$$998\,244\,353$$$.
53 10103 20005 4010018 81100110020 2010010110101101010110
2 3 10 27286 915530405
Для первого набора входных данных возможны такие последовательности операций:
Для второго набора входных данных возможны такие последовательности операций:
| Название |
|---|


