CF1615C Menorah
题目描述
有 $n$ 支蜡烛放在光明节烛台上,其中一些蜡烛最初是点燃的。我们可以用一个二进制字符串 $s$ 来描述哪些蜡烛被点燃,其中第 $i$ 支蜡烛被点燃当且仅当 $s_i=1$。

最初,蜡烛的点燃情况由字符串 $a$ 描述。在一次操作中,你可以选择一支当前已经点燃的蜡烛。这样做后,你选择的那支蜡烛会保持点燃状态,其余所有蜡烛的状态都会改变(如果原来是点燃的就会熄灭,原来是熄灭的就会点燃)。
你希望将蜡烛的状态变为字符串 $b$ 所描述的样子。你的任务是判断是否有可能做到,如果可以,求出所需的最少操作次数。
输入格式
第一行包含一个整数 $t$($1\le t\le 10^4$),表示测试用例的数量。接下来有 $t$ 组测试数据。
每组测试数据的第一行包含一个整数 $n$($1\le n\le 10^5$),表示蜡烛的数量。
第二行包含一个长度为 $n$ 的字符串 $a$,仅由 $0$ 和 $1$ 组成,表示初始的点燃状态。
第三行包含一个长度为 $n$ 的字符串 $b$,仅由 $0$ 和 $1$ 组成,表示期望的点燃状态。
保证所有测试用例中 $n$ 的总和不超过 $10^5$。
输出格式
对于每个测试用例,输出一个整数,表示将 $a$ 变为 $b$ 所需的最少操作次数。如果无法实现,输出 $-1$。
说明/提示
在第一个测试用例中,两个字符串已经相等,因此不需要进行任何操作。
在第二个测试用例中,我们可以选择第二支蜡烛进行一次操作,将 $01$ 变为 $11$。
在第三个测试用例中,因为没有点燃的蜡烛可供选择,所以无法进行任何操作。
在第四个测试用例中,我们可以按如下方式将 $a$ 变为 $b$:
1. 选择第 $7$ 支蜡烛:$100010{\color{red}1}11\to 011101{\color{red}1}00$。
2. 选择第 $2$ 支蜡烛:$0{\color{red}1}1101100\to 1{\color{red}1}0010011$。
3. 选择第 $1$ 支蜡烛:${\color{red}1}10010011\to {\color{red}1}01101100$。
在第五个测试用例中,我们可以按如下方式将 $a$ 变为 $b$:
1. 选择第 $6$ 支蜡烛:$00101{\color{red}1}011\to 11010{\color{red}1}100$。
2. 选择第 $2$ 支蜡烛:$1{\color{red}1}0101100\to 0{\color{red}1}1010011$。
3. 选择第 $8$ 支蜡烛:$0110100{\color{red}1}1\to 1001011{\color{red}1}0$。
4. 选择第 $7$ 支蜡烛:$100101{\color{red}1}10\to 011010{\color{red}1}01$。
由 ChatGPT 4.1 翻译