CF1615C.Menorah
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
There are n candles on a Hanukkah menorah, and some of its candles are initially lit. We can describe which candles are lit with a binary string s, where the i-th candle is lit if and only if si=1.

Initially, the candle lights are described by a string a. In an operation, you select a candle that is currently lit. By doing so, the candle you selected will remain lit, and every other candle will change (if it was lit, it will become unlit and if it was unlit, it will become lit).
You would like to make the candles look the same as string b. Your task is to determine if it is possible, and if it is, find the minimum number of operations required.
烛台上有 n 支蜡烛,其中部分蜡烛初始时处于点燃状态。我们可以用一个二进制字符串 s 来描述哪些蜡烛被点燃:当且仅当 si=1 时,第 i 支蜡烛被点燃。

初始时,蜡烛的点燃状态由字符串 a 描述。在一次操作中,你需选择一支当前已被点燃的蜡烛;执行该操作后,你所选的这支蜡烛保持点燃状态,而其余所有蜡烛的状态均发生翻转(即:原本点燃的变为熄灭,原本熄灭的变为点燃)。
你的目标是使蜡烛的最终点燃状态与字符串 b 所描述的状态完全一致。请判断该目标是否可达;若可达,请找出所需的最少操作次数。
输入格式
The first line contains an integer t (1≤t≤104) — the number of test cases. Then t cases follow.
The first line of each test case contains a single integer n (1≤n≤105) — the number of candles.
The second line contains a string a of length n consisting of symbols 0 and 1 — the initial pattern of lights.
The third line contains a string b of length n consisting of symbols 0 and 1 — the desired pattern of lights.
It is guaranteed that the sum of n does not exceed 105.
第一行包含一个整数 t(1≤t≤104)——测试用例的数量。随后是 t 个测试用例。
每个测试用例的第一行包含一个整数 n(1≤n≤105)——蜡烛的数量。
第二行包含一个长度为 n 的字符串 a,由字符 0 和 1 组成——灯光的初始模式。
第三行包含一个长度为 n 的字符串 b,由字符 0 和 1 组成——灯光的目标模式。
保证所有测试用例中 n 的总和不超过 105。
输出格式
For each test case, output the minimum number of operations required to transform a to b, or −1 if it's impossible.
对于每个测试用例,输出将 a 变换为 b 所需的最少操作次数;如果无法实现,则输出 −1。
输入输出样例
输入#1
5 5 11010 11010 2 01 11 3 000 101 9 100010111 101101100 9 001011011 011010101
输出#1
0 1 -1 3 4
说明/提示
In the first test case, the two strings are already equal, so we don't have to perform any operations.
In the second test case, we can perform a single operation selecting the second candle to transform 01 into 11.
In the third test case, it's impossible to perform any operations because there are no lit candles to select.
In the fourth test case, we can perform the following operations to transform a into b:
- Select the 7-th candle: 100010111→011101100.
- Select the 2-nd candle: 011101100→110010011.
- Select the 1-st candle: 110010011→101101100.
In the fifth test case, we can perform the following operations to transform a into b:
- Select the 6-th candle: 001011011→110101100
- Select the 2-nd candle: 110101100→011010011
- Select the 8-th candle: 011010011→100101110
- Select the 7-th candle: 100101110→011010101
在第一个测试用例中,两个字符串已经相等,因此无需执行任何操作。
在第二个测试用例中,我们可以执行一次操作,选择第二支蜡烛,将 01 变为 11。
在第三个测试用例中,无法执行任何操作,因为不存在已点燃的蜡烛可供选择。
在第四个测试用例中,我们可以通过以下操作将 a 变为 b:
- 选择第 7 支蜡烛:100010111→011101100。
- 选择第 2 支蜡烛:011101100→110010011。
- 选择第 1 支蜡烛:110010011→101101100。
在第五个测试用例中,我们可以通过以下操作将 a 变为 b:
- 选择第 6 支蜡烛:001011011→110101100。
- 选择第 2 支蜡烛:110101100→011010011。
- 选择第 8 支蜡烛:011010011→100101110。
- 选择第 7 支蜡烛:100101110→011010101。
输入解题思路,AI测评打分。不知道怎么写?