题库/S0142

#S0142. 【24NOIP提高组】编辑字符串(edit)

    传统题 难度: 提高 标签>一本通交换论证与贪心反例
时间限制1000 ms
内存限制512 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

S0142 · 【24NOIP提高组】编辑字符串(edit)

退出在线编程模式
提高 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制512 MiB
通过率—0 / 0 次提交

题目描述

小 M 有两个长度为 nn 且字符集为 {00, 11} 的字符串 s1s_1, s2s_2。 小 M 希望两个字符串中对应位置字符相同的出现次数尽可能多,即满足 s1,i=s2,is_{1,i} = s_{2,i}的 ii(1≤i≤n1 ≤ i ≤ n) 尽可能多。为此小 M 有一个字符串编辑工具,这个工具提供的基本操作是在一个字符串中交换两个相邻的字符。为了保持字符串的可辨识性,规定两个字符串中的部分字符不能参与交换。小 M 可以用工具对 s1s_1 或 s2s_2 进行多次字符交换,其中可以参与交换的字符能够交换任意多次。 现在小 M 想知道,在使用编辑工具后,两个字符串中对应位置字符相同的出现次数最多能有多少。

输入

本题包含多组测试数据。 输入的第一行包含一个整数 TT,表示测试数据的组数。 接下来包含 T 组数据,每组数据的格式如下: • 第一行包含一个整数 nn,表示字符串长度。 • 第二行包含一个长度为 nn 且字符集为 {00, 11} 的字符串 s1s_1。 • 第三行包含一个长度为 nn 且字符集为 {00, 11} 的字符串 s2s_2。 • 第四行包含一个长度为 nn 且字符集为 {00, 11} 的字符串 t1t_1,其中 t1,it_{1,i} 为 11 表示 s1,is_{1,i}可以参与交换,t1,it_{1,i} 为 00 表示 s1,is_{1,i} 不可以参与交换。 • 第五行包含一个长度为 nn 且字符集为 {00, 11} 的字符串 t2t_2,其中 t2,it_{2,i} 为 11 表示 s2,is_{2,i}可以参与交换,t2,it_{2,i} 为 00 表示 s2,is_{2,i} 不可以参与交换。

输出

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

输入样例

1
6
011101
111010
111010
101101

输出样例

4

提示

【样例 1 解释】 最开始时,s1s_1 = 011101011101,第 44 和第 66 个字符不能参与交换;s2s_2 = 111010111010,第 22 和第 55 个字符不能参与交换。 考虑如下操作:先交换 s1,1s_{1,1} 与 s1,2s_{1,2} 得到 s1=101101s_1 = 101101,再交换 s1,2s_{1,2} 与 s1,3s_{1,3} 得到 s1=110101s_1 =110101,最后交换 s2,3s_{2,3} 与 s2,4s_{2,4} 得到 s2=110110s_2 = 110110。此时 s1s_1 与 s2s_2 的前 44 个位置上的字符都是相同的。可以证明不存在更好的方案,故输出 44。 【数据范围】 对于所有的测试数据,保证:1≤T≤101 ≤ T ≤ 10,1≤n≤1051 ≤ n ≤ 10^5。

测试点编号 n ≤ 特殊性质
1 ∼ 4 10 无
5, 6 103A
7, 8105
9, 10 103B
11, 12105
13, 14103 C
15, 16105
17, 18103 无
19, 20 105
特殊性质 A:保证 $s_1$ 的所有字符相同。 特殊性质 B:保证 $t_1 = t_2$。 特殊性质 C:保证 $t_1$ 和 $t_2$ 中各自恰有一个字符 '$0$'。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共5个测试点,非原站或官方原始数据。总分100分。

题目信息

#2021
—

暂无提交记录

练习难度 提高
时间限制
1000ms
内存限制
512MiB

题目标签

暂无标签
上传者