CF2068J The Ultimate Wine Tasting Event
题目描述
Gabriella 的品酒会因其卓越品质闻名世界,并登上了知名葡萄酒杂志的头条。如今,她受邀为 EUC 2025 组织一场活动!
本次她挑选了 $2n$ 瓶葡萄酒,其中恰好 $n$ 瓶白葡萄酒和 $n$ 瓶红葡萄酒。她将这些酒瓶按预定顺序排成一行,用一个长度为 $2n$ 的字符串 $s$ 描述排列:对于 $1 \le i \le 2n$,从左数第 $i$ 瓶为白葡萄酒时 $s_i = \texttt{W}$,红葡萄酒时 $s_i = \texttt{R}$。
为增加趣味性(参赛者将参与其中),Gabriella 设计了以下葡萄酒主题问题:
考虑将这 $2n$ 瓶酒划分为两个不相交的子集,每个子集包含 $n$ 瓶。然后,对于每个 $1 \le i \le n$,交换第一个子集(从左数)的第 $i$ 瓶与第二个子集(同样从左数)的第 $i$ 瓶。能否选择这样的子集,使得操作完成后前 $n$ 个位置全为白葡萄酒?
输入格式
第一行包含整数 $t$($1 \le t \le 500$)——测试用例数量。接下来是 $t$ 个测试用例的描述。
每个测试用例的第一行包含整数 $n$($1 \le n \le 100$)——总酒瓶数为 $2n$。
每个测试用例的第二行包含长度为 $2n$ 的字符串 $s$,描述酒瓶排列——$s$ 的第 $i$ 个字符($1 \le i \le 2n$)为 $\texttt{W}$ 表示白葡萄酒,$\texttt{R}$ 表示红葡萄酒。
保证 $s$ 中恰好包含 $n$ 个 $\texttt{W}$ 和 $n$ 个 $\texttt{R}$。
输出格式
对于每个测试用例,若存在满足条件的划分方式,输出 $\texttt{YES}$,否则输出 $\texttt{NO}$。
说明/提示
第一个测试用例中,可选择位置 $1, 2, 3, 7$ 的瓶子(分别为:白、红、红、红)作为第一个子集,位置 $4, 5, 6, 8$ 的瓶子(分别为:白、白、白、红)作为第二个子集。交换 $(1, 4)$、$(2, 5)$、$(3, 6)$ 和 $(7, 8)$ 后,前 $4$ 个位置全为白葡萄酒。
第二个测试用例中,唯一的划分方式是将第一个瓶子作为第一个子集,第二个瓶子作为第二个子集。交换后排列为 $\texttt{RW}$,因此无解。
翻译由 DeepSeek R1 完成