AT_abc361_d [ABC361D] Go Stone Puzzle

题目描述

有 $N+2$ 个格子横向排列成一行。从左到右第 $i$ 个格子记为格子 $i$。 在格子 $1$ 到格子 $N$ 中,每个格子上各有一颗石子。 对于每个 $1 \leq i \leq N$,若 $S_i$ 为 `W`,则格子 $i$ 上的石子为白色;若 $S_i$ 为 `B`,则格子 $i$ 上的石子为黑色。 格子 $N+1$ 和 $N+2$ 上没有任何东西。 你可以进行任意次数(可以为 $0$ 次)如下操作: - 选择一对相邻且都放有石子的格子,将这两个石子按原顺序移动到一对相邻的空格子上。 更准确地说,选择一个 $x$,$1 \leq x \leq N+1$,使得格子 $x$ 和 $x+1$ 上都有石子。再选择一对相邻的空格子 $k$ 和 $k+1$,将格子 $x$ 和 $x+1$ 上的石子分别移动到格子 $k$ 和 $k+1$ 上。 请判断是否可以通过上述操作将石子的状态变为如下目标状态,并在可能的情况下求出最小操作次数: - 在格子 $1$ 到格子 $N$ 上,每个格子各有一颗石子,对于每个 $1 \leq i \leq N$,若 $T_i$ 为 `W`,则格子 $i$ 上的石子为白色,若 $T_i$ 为 `B`,则格子 $i$ 上的石子为黑色。

输入格式

输入按以下格式从标准输入读入。 > $N$ $S$ $T$

输出格式

如果可以达到目标状态,则输出所需的最小操作次数;如果无法达到,则输出 $-1$。

说明/提示

## 限制条件 - $2 \leq N \leq 14$ - $N$ 是整数 - $S,T$ 均为仅由 `B` 和 `W` 组成的长度为 $N$ 的字符串 ## 样例说明 1 用 `.` 表示没有石子的格子。可以按如下方式用 $4$ 次操作达到目标状态,且这是最小次数。 - `BWBWBW..` - `BW..BWBW` - `BWWBB..W` - `..WBBBWW` - `WWWBBB..` 由 ChatGPT 4.1 翻译