ccf#NOIP2024A. 编辑字符串(edit)
编辑字符串(edit)
题目描述
小 M 有两个长度为 且字符集为 的字符串 。
小 M 希望两个字符串中对应位置字符相同的出现次数尽可能多,即满足 的 ()尽可能多。为此小 M 有一个字符串编辑工具,这个工具提供的基本操作是在一个字符串中交换两个相邻的字符。为了保持字符串的可辨识性,规定两个字符串中的部分字符不能参与交换。小 M 可以用工具对 或 进行多次字符交换,其中可以参与交换的字符能够交换任意多次。
现在小 M 想知道,在使用编辑工具后,两个字符串中对应位置字符相同的出现次数最多能有多少。
输入格式
从文件 edit.in
中读入数据。
本题包含多组测试数据。
输入的第一行包含一个整数 ,表示测试数据的组数。
接下来包含 组数据,每组数据的格式如下:
- 第一行包含一个整数 ,表示字符串长度。
- 第二行包含一个长度为 且字符集为 的字符串 。
- 第三行包含一个长度为 且字符集为 的字符串 。
- 第四行包含一个长度为 且字符集为 的字符串 ,其中 为
1
表示 可以参与交换, 为0
表示 不可以参与交换。 - 第五行包含一个长度为 且字符集为 的字符串 ,其中 为
1
表示 可以参与交换, 为0
表示 不可以参与交换。
输出格式
输出到文件 edit.out
中。
对于每组测试数据输出一行,包含一个整数,表示对应的答案。
1
6
011101
111010
111010
101101
4
样例 1 解释
最开始时, 011101
,第 和第 个字符不能参与交换; 111010
,第 和第 个字符不能参与交换。
考虑如下操作:先交换 与 得到 101101
,再交换 与 得到 110101
,最后交换 与 得到 110110
。此时 与 的前 个位置上的字符都是相同的。可以证明不存在更好的方案,故输出 。
样例 2
见选手目录下的 edit/edit2.in
与 edit/edit2.ans
。
该样例共有 组测试数据,其中第 ()组测试数据满足数据范围中描述的测试点 的限制。
数据范围
对于所有的测试数据,保证:,。
测试点编号 | 特殊性质 | |
---|---|---|
无 | ||
A | ||
B | ||
C | ||
无 | ||
特殊性质 A:保证 的所有字符相同。
特殊性质 B:保证 。
特殊性质 C:保证 和 中各自恰有一个字符 0
。