首页 / 题库

P14083 - 编辑字符串(edit)

算法入门
通过次数2 提交次数21 内存限制 512MB 时间限制1秒

描述

小 M 有两个长度 为 $n$ 且字符集为 $\{0, 1\}$ 的字符串 $s_1, s_2$。

小 M 希望两个字符串中对应位置字符相同的出现次数尽可能多,即满足 $s(1,i) = s(2,i)$ 的 $i(1 \leq i \leq n)$ 尽可能多。为此小 M 有一个字符串编辑工具,这个工具提供的基本操作是在一个字符串中交换两个**相邻**的字符。为了保持字符串的可辨识性,规定两个字符串中的部分字符不能参与交换。小 M 可以用工具对 $s_1$ 或 $s_2$ 进行多次字符交换,其中可以参与交换的字符能够交换任意多次。

现在小 M 想知道,在使用编辑工具后,两个字符串中对应位置字符相同的出现次数最多能有多少。

输入

输入的第一行包含一个整数 $T$,表示测试数据的组数。

接下来包含 $T$ 组数据,每组数据的格式如下:

- 第一行包含一个整数 $n$,表示字符串长度。
- 第二行包含一个长度为 $n$ 且字符集为 $\{0, 1\}$ 的字符串 $s_1$。
- 第三行包含一个长度为 $n$ 且字符集为 $\{0, 1\}$ 的字符串 $s_2$。
- 第四行包含一个长度为 $n$ 且字符集为 $\{0, 1\}$ 的字符串 $t_1$,其中 $t(1,i)$ 为 $1$ 表示 $s(1,i)$ 可以参与交换,$t(1,i)$ 为 $0$ 表示 $s(1,i)$ 不可以参与交换。
- 第五行包含一个长度为 $n$ 且字符集为 $\{0, 1\}$ 的字符串 $t_2$,其中 $t(2,i)$ 为 $1$ 表示 $s(2,i)$ 可以参与交换,$t(2,i)$ 为 $0$ 表示 $s(2,i)$ 不可以参与交换。

输出

对于每组测试数据输出一行,包含一个整数,表示对应的答案。

样例

  • 复制
  • 复制

提示

**【样例 1 解释】**

最开始时,$s_1 = \tt{011101}$,第 $4$ 和第 $6$ 个字符不能参与交换;$s_2 = \tt{111010}$,第 $2$ 和第 $5$ 个字符不能参与交换。

考虑如下操作:先交换 $s(1,1)$ 与 $s(1,2)$ 得到 $s_1 = \tt{101101}$,再交换 $s(1,2)$ 与 $s(1,3)$ 得到 $s_1 = \tt{110101}$,最后交换 $s(2,3)$ 与 $s(2,4)$ 得到 $s_2 = \tt{110110}$。此时 $s_1$ 与 $s_2$ 的前 $4$ 个位置上的字符都是相同的。可以证明不存在更好的方案,故输出 $4$。


**【数据范围】**

对于所有的测试数据,保证:$1 \leq T \leq 10$,$1 \leq n \leq 10^5$。

![](/uploads/20241205/17333620903566.png)

- 特殊性质 A:保证 $s_1$ 的所有字符相同。
- 特殊性质 B:保证 $t_1 = t_2$。
- 特殊性质 C:保证 $t_1$ 和 $t_2$ 中各自恰有一个字符 $\tt 0$。

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36