AT_qupc2018_j Repeat Strings
题目描述
给定一个由字符 `a` 和 `b` 组成的字符串 $S$,你可以依次进行若干次以下操作:
- 从字符串 $S$ 中选择一个连续的区间 $[l, r]$。对于该区间内满足 $l \leq k \leq r$ 的每个位置 $k$,如果 $S_k$ 是 `a`,就将其变为 `b`;如果 $S_k$ 是 `b`,就将其变为 `a`。
接下来,有 $Q$ 个字符串 $T_i$,每个也是由 `a` 和 `b` 构成。将每个 $T_i$ 重复 $10^{100}$ 次,截取长度为 $|S| + 1$ 的前缀,得到一个新的字符串 $T'_i$。
你的任务是,对于每一个字符串 $T'_i$,计算将字符串 $S$ 变为 $T'_i$ 最少需要多少次操作。
输入格式
输入以如下格式给出:
> $ S $ $ Q $ $ T_1 $ $ T_2 $ ... $ T_Q $
输出格式
输出 $Q$ 行。每行包含一个整数,表示将 $S$ 变为 $T'_i$ 所需的最小操作次数。
## 数据范围
- $1 \leq |S| \leq 2 \times 10^5$
- $1 \leq Q \leq 2 \times 10^5$
- $1 \leq |T_i| \leq 2 \times 10^5$
- 所有 $T_i$ 的长度总和不超过 $2 \times 10^5$
- $S$ 和 $T_i$ 仅包含字符 `a` 和 `b`
### 示例解释
对于每个 $T'_i$ 的具体表现如下:
- $T'_1 = $ `abababababa`
- $T'_2 = $ `bbbbbbbbbbb`
- $T'_3 = $ `babaabbabab`
- $T'_4 = $ `aaaaaaaaaaa`
例如,将字符串 $S$ 变为 $T'_1$ 需要最少 $2$ 次操作。可以按以下步骤实现:`babaabbabab` → `ababbaababa` → `abababababa`。
**本翻译由 AI 自动生成**
说明/提示
### 制約
- $ 1\ \leq\ |S|\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ Q\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ |T_i|\ \leq\ 2\ \times\ 10^5 $
- $ T_i $ の長さの合計は $ 2\ \times\ 10^5 $ 以下
- $ S $, $ T_i $ は `a` と `b` からなる文字列
- $ Q $ は整数
### Sample Explanation 1
それぞれの $ T'_i $ は次の通りです。 - $ T'_1\ = $ `abababababa` - $ T'_2\ = $ `bbbbbbbbbbb` - $ T'_3\ = $ `babaabbabab` - $ T'_4\ = $ `aaaaaaaaaaa` 例えば $ S $ を $ T'_1 $ に一致させるために必要な操作回数の最小値は $ 2 $ です。`babaabbabab` → `ababbaababa` → `abababababa` の手順で達成可能です。