AT_arc169_e [ARC169E] Avoid Boring Matches
题目描述
有一个编号从 $1$ 到 $2^N$ 的 $2^N$ 名参赛者参加的大会。
大会按如下方式进行:
- 首先,给每位参赛者戴上一顶红色或蓝色的帽子。每位参赛者所戴帽子的颜色由字符串 $S$ 给出。具体来说,$S$ 的第 $i$ 个字符($1 \leq i \leq 2^N$)为 `R` 时,参赛者 $i$ 戴红帽,为 `B` 时戴蓝帽。
- 之后,重复以下操作直到只剩下 $1$ 名参赛者:
- 当前有 $2k$ 名参赛者时,将他们分成 $k$ 组,每组 $2$ 人。分组方式可以自由选择。每组进行比赛,编号较小的参赛者必定获胜,编号较大的淘汰。
你认为,红帽参赛者之间的比赛是“无聊的”比赛。你的目标是,在整个比赛过程中,通过合理分组,使得不会出现任何一场无聊的比赛。
能否实现这个目标取决于字符串 $S$。因此,在比赛开始前,你可以对 $S$ 进行如下操作任意多次(可以为 $0$ 次):
- 选择 $S$ 中相邻的两个字符,交换它们。
请判断,经过若干次操作后,是否可以实现目标。如果可以,请输出所需的最小操作次数。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $S$
输出格式
如果无法实现目标,输出 $-1$。如果可以,输出所需的最小操作次数。
说明/提示
### 限制
- $1 \leq N \leq 18$
- $S$ 是由 `R` 和 `B` 组成的长度为 $2^N$ 的字符串。
- 所有输入均为整数。
### 样例解释 1
如果不进行任何操作,无法实现目标。交换 $S$ 的第 $2$ 个和第 $3$ 个字符,使 $S = $`RBRB`,则可以实现目标。具体过程如下:
- 参赛者 $1,2,3,4$ 分别戴上红、蓝、红、蓝帽子。
- 将 $4$ 名参赛者分为两组 $(1,4),(2,3)$,此时不会出现无聊的比赛。比赛后,参赛者 $1,2$ 晋级。
- 将 $2$ 名参赛者分为一组 $(1,2)$,此时不会出现无聊的比赛。比赛后,参赛者 $1$ 晋级。
- 因此,答案为 $1$。
由 ChatGPT 4.1 翻译