U535982 C-小梦的AB交换
题目描述
小梦有一个长度为 $2 * n$ 的 $AB$ 串 $s$,即 $s$ 中只包含 "$A$" 和 "$B$" 两种字符,且其中恰好有 $n$ 个 "$A$" 和 $n$ 个 "$B$"。
他可以对 $s$ 执行以下操作:
$\bullet$ 选择 $i, j\ (1 \leq i, j \leq 2\cdot n, i \ne j)$,并交换 $s_i$ 和 $s_j$。
他想知道,需要至少多少次操作,才能使得 $s$ 满足相邻的字符不相同,请你帮他算一算吧。
输入格式
**本题有多组测试数据。**
输入的第一行包含一个正整数 $T$,表示数据组数。
接下来包含 $T$ 组数据,每组数据的格式如下:
第一行一个正整数 $n$,表示 $s$ 长度的一半。
第二行一个长度为 $2*n$ 的字符串 $s$,保证只由 "$A$", "$B$" 两种字符构成。
输出格式
对于每组测试数据:
在单独的一行输出一个整数,表示最少进行的操作次数。
说明/提示
**【样例 1 解释】**
交换 $s_2 = A$ 和 $s_5=B$,得到 $s=$ "$\rm ABABAB$",满足题意,一次交换即可。
**【数据范围】**
令 $N$ 表示 $T$ 组数据中 $n$ 的总和。
对于 $\rm 50\%$ 的数据有:$T = 1, 1 \leq N\leq 3$。
对于所有的测试数据有: $1 \leq T \leq 100, 1 \leq N \leq 10^6$。