AT_arc216_a [ARC216A] Reversi 3

题目描述

给定长度为 $N$ 的字符串 $A$ 和 $B$,它们仅包含字符 `0` 和 `1`。记 $A_i$ 表示字符串 $A$ 的第 $i$ 个字符。 你可以进行以下操作任意次(也可以不操作)。 - 选择一个整数 $i\ (2 \leq i \leq N-1)$,满足 $A_{i-1} = A_{i+1}$,然后翻转 $A_i$(将 `1` 变为 `0` 或将 `0` 变为 `1`)。 请判断是否可以通过若干次操作将 $A$ 变为 $B$,如果可以,求出所需操作的最小次数。 共有 $T$ 组测试数据,请对每一组数据分别求解。

输入格式

从标准输入读取,格式如下: > $T$ > $\mathrm{case}_1$ > $\mathrm{case}_2$ > $\vdots$ > $\mathrm{case}_T$ 每组测试数据格式为: > $N$ > $A$ > $B$

输出格式

对每组测试数据,按顺序输出答案。 如果无法将 $A$ 变为 $B$,输出 `-1`。 如果可以,输出所需操作的最小次数。

说明/提示

### 样例解释 1 对于第一组测试数据,可以通过两次操作将 $A$ 变为 $B$,如下: 1. 选择 $i = 2$,$A$ 变为 `0101`。 2. 选择 $i = 3$,$A$ 变为 `0111`。 对于第二组测试数据,无论进行多少次操作,都无法将 $A$ 变为 $B$。 ### 数据范围 - $1 \leq T \leq 2 \times 10^5$ - $3 \leq N \leq 10^6$ - $A$ 和 $B$ 均为长度为 $N$ 的只包含 `0` 和 `1` 的字符串。 - $T$ 和 $N$ 均为整数。 - 所有测试数据中 $N$ 的总和不超过 $10^6$。 由 ChatGPT 5 翻译