시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 256 MB | 1 | 1 | 1 | 100.000% |
Гриша и Дима снова играют в игру. В этот раз у них есть строка из нулей и единиц. Со строкой можно делать следующие операции:
01
» на подстроку «10
»;10
» на подстроку «01
».Так, например, за одну операцию из строки «00111
» можно получить строки: «00
», «111
» и «01011
».
Теперь ребят интересует вопрос: сколько различных строк длины k можно получить из данной строки, применяя описанные операции. Гриша и Дима заняты сессией, поэтому они просят вас помочь им.
По данной строке и числу k определите, сколько различных строк длины k можно получить из заданной строки, используя описанные операции.
Первая строка содержит целое положительное число t (1 ≤ t ≤ 1000) — число тестовых примеров во входных данных. Далее следуют описания тестовых примеров.
Каждый тестовый пример описывается двумя строками. Первая строка содержит два целых положительных числа n и k (1 ≤ k ≤ n ≤ 100) — длину исходной строки и длину строки, которую требуется получить. Вторая строка содержит строку длины n, состоящую из нулей и единиц.
Выведите t строк. Для каждого тестового примера выведите количество строк длины k, которые можно получить из заданной применением описанных операций. Так как ответ может быть достаточно большим, выведите его по модулю 109 + 7.
4 2 2 10 4 2 0000 5 2 01010 5 2 10101
2 1 0 1
Contest > Russian Code Cup > 2015 > RCC 2015 Eliminatory A번