CF1566C.MAX-MEX Cut

入门

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

A binary string is a string that consists of characters 00 and 11. A bi-table is a table that has exactly two rows of equal length, each being a binary string.

Let MEX⁡\operatorname{MEX} of a bi-table be the smallest digit among 00, 11, or 22 that does not occur in the bi-table. For example, MEX⁡\operatorname{MEX} for [00111010]\begin{bmatrix} 0011\\ 1010 \end{bmatrix} is 22, because 00 and 11 occur in the bi-table at least once. MEX⁡\operatorname{MEX} for [111111]\begin{bmatrix} 111\\ 111 \end{bmatrix} is 00, because 00 and 22 do not occur in the bi-table, and 0<20 \lt 2.

You are given a bi-table with nn columns. You should cut it into any number of bi-tables (each consisting of consecutive columns) so that each column is in exactly one bi-table. It is possible to cut the bi-table into a single bi-table — the whole bi-table.

What is the maximal sum of MEX⁡\operatorname{MEX} of all resulting bi-tables can be?

二进制字符串是指仅由字符 00 和 11 组成的字符串。双行表(bi-table)是指恰好有两行、且每行长度相等的表格,其中每一行均为二进制字符串。

定义一个双行表的 MEX⁡\operatorname{MEX} 为在 00、11、22 中未在该双行表中出现的最小数字。例如,双行表 [00111010]\begin{bmatrix} 0011\\ 1010 \end{bmatrix} 的 MEX⁡\operatorname{MEX} 为 22,因为 00 和 11 均至少出现了一次;而双行表 [111111]\begin{bmatrix} 111\\ 111 \end{bmatrix} 的 MEX⁡\operatorname{MEX} 为 00,因为 00 和 22 均未出现,且 0<20 < 2。

现给定一个具有 nn 列的双行表。你需要将其切割成任意数量的双行表(每个新双行表均由原表中若干连续列构成),使得每一列恰好属于其中一个双行表。允许不进行切割,即整个双行表本身作为一个双行表。

问:所有切割所得双行表的 MEX⁡\operatorname{MEX} 值之和的最大可能值是多少?

输入格式

The input consists of multiple test cases. The first line contains a single integer tt (1≤t≤1041 \le t \le 10^4) — the number of test cases. Description of the test cases follows.

The first line of the description of each test case contains a single integer nn (1≤n≤1051 \le n \le 10^5) — the number of columns in the bi-table.

Each of the next two lines contains a binary string of length nn — the rows of the bi-table.

It's guaranteed that the sum of nn over all test cases does not exceed 10510^5.

输入包含多个测试用例。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。随后是各测试用例的描述。

每个测试用例的描述以一行开始,该行包含一个整数 nn(1≤n≤1051 \le n \le 10^5),表示双值表(bi-table)的列数。

接下来两行每行包含一个长度为 nn 的二进制字符串,分别表示双值表的两行。

保证所有测试用例的 nn 值之和不超过 10510^5。

输出格式

For each test case print a single integer — the maximal sum of MEX⁡\operatorname{MEX} of all bi-tables that it is possible to get by cutting the given bi-table optimally.

对于每个测试用例,输出一个整数——即通过最优地切割给定的双表所能得到的所有双表的 MEX⁡\operatorname{MEX} 值之和的最大值。

输入输出样例

  • 输入#1

    4
    7
    0101000
    1101100
    5
    01100
    10101
    2
    01
    01
    6
    000000
    111111

    输出#1

    8
    8
    2
    12

说明/提示

In the first test case you can cut the bi-table as follows:

  • [01]\begin{bmatrix} 0\\ 1 \end{bmatrix}, its MEX⁡\operatorname{MEX} is 22.
  • [1010]\begin{bmatrix} 10\\ 10 \end{bmatrix}, its MEX⁡\operatorname{MEX} is 22.
  • [11]\begin{bmatrix} 1\\ 1 \end{bmatrix}, its MEX⁡\operatorname{MEX} is 00.
  • [01]\begin{bmatrix} 0\\ 1 \end{bmatrix}, its MEX⁡\operatorname{MEX} is 22.
  • [00]\begin{bmatrix} 0\\ 0 \end{bmatrix}, its MEX⁡\operatorname{MEX} is 11.
  • [00]\begin{bmatrix} 0\\ 0 \end{bmatrix}, its MEX⁡\operatorname{MEX} is 11.

The sum of MEX⁡\operatorname{MEX} is 88.

在第一个测试用例中,你可以按如下方式切割该二元表:

  • [01]\begin{bmatrix} 0\\ 1 \end{bmatrix},其 MEX⁡\operatorname{MEX} 为 22。
  • [1010]\begin{bmatrix} 10\\ 10 \end{bmatrix},其 MEX⁡\operatorname{MEX} 为 22。
  • [11]\begin{bmatrix} 1\\ 1 \end{bmatrix},其 MEX⁡\operatorname{MEX} 为 00。
  • [01]\begin{bmatrix} 0\\ 1 \end{bmatrix},其 MEX⁡\operatorname{MEX} 为 22。
  • [00]\begin{bmatrix} 0\\ 0 \end{bmatrix},其 MEX⁡\operatorname{MEX} 为 11。
  • [00]\begin{bmatrix} 0\\ 0 \end{bmatrix},其 MEX⁡\operatorname{MEX} 为 11。

MEX⁡\operatorname{MEX} 的总和为 88。

输入解题思路,AI测评打分。不知道怎么写?

首页