AT_agc030_e [AGC030E] Less than 3

题目描述

给定两个长度为 $N$ 的字符串 $s$ 和 $t$,它们只包含字符 `0` 和 `1`。此外,在 $s$ 和 $t$ 中,同一个字符不会连续出现 $3$ 次或以上。 你可以重复进行如下操作来修改 $s$: - 任意选择一个下标 $i$($1 \leq i \leq N$),将 $s$ 的第 $i$ 个字符反转(即将 `0` 变为 `1`,或将 `1` 变为 `0`)。但操作后,$s$ 中不能出现同一字符连续 $3$ 次或以上的情况。 你的目标是将 $s$ 变为 $t$。请你求出将 $s$ 变为 $t$ 所需的最小操作次数。

输入格式

输入以如下格式从标准输入读入: > $N$ $s$ $t$

输出格式

输出将 $s$ 变为 $t$ 所需的最小操作次数。可以证明一定存在有限次操作使目标达成。

说明/提示

## 限制条件 - $1 \leq N \leq 5000$ - $s$ 和 $t$ 的长度均为 $N$。 - $s$ 和 $t$ 只包含字符 `0` 和 `1`。 - $s$ 和 $t$ 中不会出现同一字符连续 $3$ 次或以上的情况。 ## 样例解释 1 例如,可以按如下顺序操作:`0011` → `1011` → `1001` → `1101` → `0101`。 由 ChatGPT 4.1 翻译