零一串·困难
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
Tom 给了 33DAI 两个长度为 的 串 与 (下标从 开始)。33DAI 可以操作 任意多次(包括零次):
每次操作选取两个下标 (),同时翻转 与 。一次操作的代价只取决于两个下标是否相邻:若 ,代价为 ;否则代价为 。 与 的大小关系没有限制。
求把 变成 所需的最小总代价。如果无法做到,输出 。
输入格式
从文件 bits.in 读入数据。
输入的第一行包含一个正整数 ,表示测试数据组数。
接下来依次给出 组数据,每组数据的格式为:
第一行包含三个整数 ,分别表示串长与两种操作的代价。
第二行包含一个长度为 的仅由 0、1 组成的字符串 。
第三行包含一个长度为 的仅由 0、1 组成的字符串 。
输出格式
输出到文件 bits.out。
对于每组数据,输出一行一个整数:把 变成 的最小总代价;若无法做到,输出 。
6
5 8 9
01001
00101
6 2 11
000001
100000
5 7 2
01000
11011
7 8 3
0111001
0100001
6 3 4
010001
101000
5 10 1
01100
01100
8
10
-1
6
7
0
样例 1 解释
第一组数据: 与 只有第 位不同。对下标对 做一次相邻操作, 就变成了 ,代价为 。
第二组数据: 与 在第 位不同。依次对下标对 、、、、 各做一次相邻操作(第 位各被翻转两次、不受影响), 就变成了 ,总代价为 。
第三组数据:答案是 ,即不存在把 变成 的操作方案。
第四组数据: 与 在第 位不同,这里 。 对下标对 与 各做一次不相邻操作(两次都满足 ): 第 位各被翻转一次,第 位被翻转两次而抵消, 就变成了 ,总代价为 。
第五组数据: 与 在第 位不同,这里 。 对下标对 做一次相邻操作(代价 ),再对下标对 做一次不相邻操作 (代价 ), 就变成了 ,总代价为 。
第六组数据:两个串已经完全相同,不需要做任何操作。
样例 2
样例 3
数据范围
对于所有测试数据,保证:
- ;
- ;
- ;
- 与 均只由字符
0、1组成,长度均为 ; - 单个测试文件中所有测试用例的 之和不超过 。
子任务
本题共 20 个测试点,按测试点计分:
| 测试点 | 分值 | 每个测试点 | 特殊限制 |
|---|---|---|---|
每个测试点单独评分,全部测试点的得分之和即为本题得分。