CF1566C MAX-MEX Cut
题目描述
一个二进制字符串是只包含字符 $0$ 和 $1$ 的字符串。一个“二表”是一个有且仅有两行、长度相等且每行都是二进制字符串的表格。
定义“二表”的 $\operatorname{MEX}$ 为 $0$、$1$、$2$ 中未在该二表中出现的最小数字。例如,$\begin{bmatrix} 0011\\ 1010 \end{bmatrix}$ 的 $\operatorname{MEX}$ 是 $2$,因为 $0$ 和 $1$ 都至少出现过一次。$\begin{bmatrix} 111\\ 111 \end{bmatrix}$ 的 $\operatorname{MEX}$ 是 $0$,因为 $0$ 和 $2$ 都没有出现,且 $0 < 2$。
现在给定一个有 $n$ 列的二表。你可以将其切分成若干个二表(每个由若干连续的列组成),要求每一列恰好属于一个二表。你也可以选择不切分,即整个二表作为一个整体。
请问,经过最优切分后,所有得到的二表的 $\operatorname{MEX}$ 之和最大是多少?
输入格式
输入包含多组测试数据。第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 10^5$),表示二表的列数。
接下来的两行,每行一个长度为 $n$ 的二进制字符串,表示二表的两行。
保证所有测试用例中 $n$ 的总和不超过 $10^5$。
输出格式
对于每个测试用例,输出一个整数,表示经过最优切分后所有二表的 $\operatorname{MEX}$ 之和的最大值。
说明/提示
在第一个测试用例中,可以按如下方式切分二表:
- $\begin{bmatrix} 0\\ 1 \end{bmatrix}$,其 $\operatorname{MEX}$ 为 $2$。
- $\begin{bmatrix} 10\\ 10 \end{bmatrix}$,其 $\operatorname{MEX}$ 为 $2$。
- $\begin{bmatrix} 1\\ 1 \end{bmatrix}$,其 $\operatorname{MEX}$ 为 $0$。
- $\begin{bmatrix} 0\\ 1 \end{bmatrix}$,其 $\operatorname{MEX}$ 为 $2$。
- $\begin{bmatrix} 0\\ 0 \end{bmatrix}$,其 $\operatorname{MEX}$ 为 $1$。
- $\begin{bmatrix} 0\\ 0 \end{bmatrix}$,其 $\operatorname{MEX}$ 为 $1$。
$\operatorname{MEX}$ 之和为 $8$。
由 ChatGPT 4.1 翻译