#P14216. [2026队测系列]信号阵列校准

    ID: 13425 传统题 1000ms 256MiB 尝试: 2 已通过: 2 难度: 5 上传者: 标签>CF1800数学贪心字符串差分模拟构造

[2026队测系列]信号阵列校准

题目背景

在“星港远征计划”中,空间站外壁上安装着一排二值信号灯,用于向远航舰队传递校准指令。每盏灯只有两种状态:0 表示熄灭,1 表示点亮。
由于中继器的结构限制,只有当某个信号灯左右两侧的灯状态完全相同时,技术员才可以翻转中间那盏灯的状态。

现在,工程师给出了当前信号阵列 AA 和目标信号阵列 BB。你需要判断能否通过若干次这样的校准操作,将 AA 调整为 BB;如果可以,还要计算所需操作次数的最小值。

题目描述

给定两个长度为 NN 的仅由 01 组成的字符串 A,BA,B。记 AA 的第 ii 个字符为 AiA_i

你可以进行任意次(也可以一次都不进行)如下操作:

  • 选择一个满足 2iN12 \le i \le N-1 的整数 ii,并且要求 Ai1=Ai+1A_{i-1}=A_{i+1},然后将 AiA_i 反转(若为 1 则变成 0,若为 0 则变成 1)。

请判断是否能够通过若干次操作将 AA 变为 BB。如果可以,求所需操作次数的最小值。

共有 TT 组测试数据,你需要对每组数据分别求解。

输入格式

第一行一个整数 TT,表示测试数据组数。

接下来每组测试数据格式如下:

N
A
B

其中:

  • NN 表示字符串长度;
  • A,BA,B 为长度均为 NN 的二进制字符串。

输出格式

对于每组测试数据:

  • 如果无法将 AA 变为 BB,输出 -1
  • 否则输出使 AA 变为 BB 所需的最小操作次数。

每个答案占一行。

样例 #1

输入 #1

4
4
0001
0111
6
101101
011100
5
10101
10101
10
0101000101
0011100111

输出 #1

2
-1
0
6

样例说明

对于第 11 组测试数据,可以通过如下两次操作将 AA 变为 BB

  1. 选择 i=2i=2,此时 AA 变为 0101
  2. 选择 i=3i=3,此时 AA 变为 0111

对于第 22 组测试数据,无论怎样操作,都无法将 AA 变为 BB

数据范围

  • 1T2×1051 \le T \le 2 \times 10^5
  • 3N1063 \le N \le 10^6
  • A,BA,B 均为长度为 NN 的、仅由 01 组成的字符串
  • 所有测试数据中 NN 的总和不超过 10610^6