307059: CF1295B. Infinite Prefixes

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Infinite Prefixes

题意翻译

给定一个长度为 $n$ 的 $01$ 串 $s$,将它无限复制拼接得到一个无限长的 $01$ 串 $t=ssssss\cdots$,对于 $t$ 的某个前缀定义它的权值为 $0$ 的个数减去 $1$ 的个数,求权值为 $x$ 的前缀的个数,如果无穷多输出 $-1$。

题目描述

You are given string $ s $ of length $ n $ consisting of 0-s and 1-s. You build an infinite string $ t $ as a concatenation of an infinite number of strings $ s $ , or $ t = ssss \dots $ For example, if $ s = $ 10010, then $ t = $ 100101001010010... Calculate the number of prefixes of $ t $ with balance equal to $ x $ . The balance of some string $ q $ is equal to $ cnt_{0, q} - cnt_{1, q} $ , where $ cnt_{0, q} $ is the number of occurrences of 0 in $ q $ , and $ cnt_{1, q} $ is the number of occurrences of 1 in $ q $ . The number of such prefixes can be infinite; if it is so, you must say that. A prefix is a string consisting of several first letters of a given string, without any reorders. An empty prefix is also a valid prefix. For example, the string "abcd" has 5 prefixes: empty string, "a", "ab", "abc" and "abcd".

输入输出格式

输入格式


The first line contains the single integer $ T $ ( $ 1 \le T \le 100 $ ) — the number of test cases. Next $ 2T $ lines contain descriptions of test cases — two lines per test case. The first line contains two integers $ n $ and $ x $ ( $ 1 \le n \le 10^5 $ , $ -10^9 \le x \le 10^9 $ ) — the length of string $ s $ and the desired balance, respectively. The second line contains the binary string $ s $ ( $ |s| = n $ , $ s_i \in \{\text{0}, \text{1}\} $ ). It's guaranteed that the total sum of $ n $ doesn't exceed $ 10^5 $ .

输出格式


Print $ T $ integers — one per test case. For each test case print the number of prefixes or $ -1 $ if there is an infinite number of such prefixes.

输入输出样例

输入样例 #1

4
6 10
010010
5 3
10101
1 0
0
2 0
01

输出样例 #1

3
0
1
-1

说明

In the first test case, there are 3 good prefixes of $ t $ : with length $ 28 $ , $ 30 $ and $ 32 $ .

Input

题意翻译

给定一个长度为 $n$ 的 $01$ 串 $s$,将它无限复制拼接得到一个无限长的 $01$ 串 $t=ssssss\cdots$,对于 $t$ 的某个前缀定义它的权值为 $0$ 的个数减去 $1$ 的个数,求权值为 $x$ 的前缀的个数,如果无穷多输出 $-1$。

加入题单

算法标签: