#P13303. [2025年队测]Magnets

[2025年队测]Magnets

题目翻译

题意

给定两个长度为 NN 的二进制字符串 A=A1A2ANA=A_1A_2\ldots A_NB=B1B2BNB=B_1B_2\ldots B_N

NN 个方格从左到右排成一行,左起第 ii 个称为方格 ii。初始时,若 Ai=1A_i=\texttt{1} 则方格 ii 里有一个棋子,若 Ai=0A_i=\texttt{0} 则没有棋子。

你可以进行任意多次(包括 0 次)如下操作:

  • 选择一个整数 ii1iN1\le i\le N)。
  • 所有棋子同时向着方格 ii 各移动一格:设某棋子当前位置为 jj,新位置为 jj',则
    • i<ji<j,则 j=j1j'=j-1
    • i>ji>j,则 j=j+1j'=j+1
    • i=ji=j,则 j=jj'=j(留在原处)。

目标:判断是否能通过若干次操作,使得最终配置满足

对于每个 i=1,2,,Ni=1,2,\ldots,N,当且仅当 Bi=1B_i=\texttt{1} 时,方格 ii 至少有一个棋子。

若可以,求达到该目标所需的最少操作次数;否则输出 1-1

共有 TT 个相互独立的测试用例。


约束

  • 1T2×1051 \le T \le 2\times 10^5
  • 1N1061 \le N \le 10^6
  • A,BA,B 为长度为 NN 的仅由 0/1 构成的字符串
  • 至少存在一个位置使 Ai=1A_i=\texttt{1}
  • 至少存在一个位置使 Bi=1B_i=\texttt{1}
  • 所有测试用例的 NN 之和不超过 10610^6

输入格式

T
case_1
case_2
…
case_T

其中第 ii 个测试用例如下给出:

N
A
B

输出格式

输出共 TT 行。第 ii 行为第 ii 个测试用例的答案:
若无法达到目标,输出 -1;否则输出所需的最少操作次数。


样例输入

3
8
01001101
00001011
3
010
111
20
10100011011110101011
00010001111101100000

样例输出

3
-1
5

说明(样例 1)

初始各格棋子个数为 (0,1,0,0,1,1,0,1)(0,1,0,0,1,1,0,1)。按如下三次操作可满足目标:

  1. i=5i=5:变为 (0,0,1,0,2,0,1,0)(0,0,1,0,2,0,1,0)
  2. i=8i=8:变为 (0,0,0,1,0,2,0,1)(0,0,0,1,0,2,0,1)
  3. 再选 i=8i=8:变为 (0,0,0,0,1,0,2,1)(0,0,0,0,1,0,2,1)

证明少于三次不可能,因此答案为 3。第二个用例无论如何操作都无法达成目标,答案为 -1

子任务 限制条件 分值
子任务 1 1N151 \leq N \leq 15(所有测试用例的 NN 之和 15\leq 15 10 分
子任务 2 1N10001 \leq N \leq 1000(所有测试用例的 NN 之和 1000\leq 1000 20 分
子任务 3 BB 中的所有 1 连成一个连续段(即 BB1 仅有一个连续区间) 30 分
子任务 4 无额外限制,满足原始数据范围(NN 之和 106\leq 10^6 等) 40 分