问题 4893 --2.相似子串

4893: 2.相似子串

题目描述

  给定一个长度为 $n$ 的 $01$ 串 $S$,所谓 $01$01 串就是指所有字符都是 $0$ 或 $1$ 的字符串。
对于两个 $01$ 串 $A$ 和 $B$,我们每次选择 $A$ 串中两个不同的位置并交换这两个位置的字符,如果经过一系列操作可以让 $A$ 和 $B$ 完全相同,那么我们就称这两个串相似。
对于一个长度为 $m$ 的串 $T$,如果对于一个 $x(1 \leq x \leq n-m+1)$,$S$ 中第 $x,x+1,\ldots,x+m$ 个位置的字符依次连成的字符串和 $T$ 相似,那么称 $T$ 在 $x$ 处与 $S$ 匹配。
现在给定 $S$ 以及若干个 $T$,你要对每一个 $T$ 求出有多少个 $x$ 使得 $T$ 在 $x$ 处与 $T$ 匹配。

输入

第一行一个 $01$ 串表示字符串 $S$,$n$ 的值即为字符串长度。
接下来一个正整数 $q$ 表示询问个数。
接下来 $q$ 行,每行一个 $01$ 串表示询问串。

输出

输出 $q$ 行,每行一个数表示对应 $x$ 的个数。

样例输入输出

输入#1 复制
1010
4
1
10
101
1010
输出#1 复制
2
3
1
1
输入#2 复制
100110100
5
11
101
010
10
00
输出#2 复制
1
3
4
5
2

提示

对于前 $20\%$ 的数据,$S$ 的长度不超过 $100$;
对于前 $50\%$ 的数据,$q \leq 100$;
对于所有数据,$S$ 非空且 $S$ 的长度不超过 $2\times 10^5$,询问串非空且询问串长之和不超过 $2\times 10^5$,$1 \leq q \leq 2\times 10^5$。

序号 标题 作者 发表时间 费用 订购数 操作