#P14794. [NERC 2025] Medical Parity

    ID: 14723 远端评测题 3000ms 1024MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>动态规划 DP贪心2025ICPCNERC/NEERC

[NERC 2025] Medical Parity

Description

Mira 护士在一家过敏诊所工作。对于每位患者,Mira 按固定顺序测试 nn 种过敏原。测试结果被记录为一个长度为 nn 的二进制字符串 xx:对于每种过敏原,1 表示阳性反应,0 表示无反应。

为了分析反应是如何分布的,Mira 还会为 xx 编写一个 奇偶控制字符串。对于一个长度为 nn 的二进制字符串 xx,奇偶控制字符串 yy 定义如下:对于每个位置 ii (1in1 \le i \le n),令 cic_ixx 的前 ii 个字符(包括位置 ii)中等于 1 的字符个数。奇偶控制字符串 yy 是一个长度为 nn 的二进制字符串,使得对所有 ii (1in1 \le i \le n),有 yi=cimod2y_i = c_i \mod 2。换句话说,如果 cic_i 为奇数则 yiy_i 为 1,如果 cic_i 为偶数则 yiy_i 为 0。例如,如果 x=11101x = 11101,那么 y=10110y = 10110

不幸的是,在记录数据时,测试结果字符串和奇偶控制字符串中的某些位可能被错误地书写了。对于一位给定的患者,Mira 后来在系统中找到了两个长度相同、均为 nn 的二进制字符串 xx'yy'。它们本应是某个真实的测试结果字符串 xx 及其奇偶控制字符串 yy,但在记录过程中 xxyy 的一些位可能被翻转了。例如,在前面的例子中,只有 yy 的第 3 位可能被翻转了,导致 x=11101x' = 11101y=10010y' = 10010

在一次 位翻转 中,选择两个字符串中某一位置,将该位置的位进行翻转(将 0 变为 1 或将 1 变为 0)。Mira 想知道在记录数据时可能发生的最小位翻转次数。

形式化地说,你被给予两个长度为 nn 的二进制字符串 xx'yy'。你希望通过翻转 xx'yy' 中的一些位,得到两个长度为 nn 的字符串 xxyy,使得 yyxx 的奇偶控制字符串。找出所需的最小可能的总位翻转次数。

Input Format

输入的第一行包含测试用例的数量 tt。接下来是 2t2t 行 —— 每个测试用例两行。每个测试用例的第一行包含一个非空的二进制字符串 xx',由字符 0 和 1 组成。第二行包含一个二进制字符串 yy',由字符 0 和 1 组成,且长度与 xx' 相同。

输入中所有 xx' 字符串的总长度不超过 10610^6

Output Format

输出 tt 行 —— 每个测试用例一行。对于每个测试用例,输出一个整数 —— 在记录数据时可能发生的最小位翻转次数。

3
11101
10110
11101
10010
01100
10110
0
1
2

Hint

翻译由 DeepSeek V3 完成