AT_tupc2022_e.00-11 Rotation

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定两个只包含 00 和 11 的长度为 NN 的字符串 SS 和 TT。记 SS 的第 ii 个字符为 SiS_i。

Aoba 想通过对字符串 SS 进行以下两种操作,将 SS 变为 TT:

  • 操作 1:选择下标 ii (1≤i≤N−2)(1 \leq i \leq N-2),使得 SiSi+1Si+2S_iS_{i+1}S_{i+2} 等于 001001 或 100100,然后将这三个字符替换成 001001 或 100100(可以替换成任意一个)。
  • 操作 2:选择下标 ii (1≤i≤N−2)(1 \leq i \leq N-2),使得 SiSi+1Si+2S_iS_{i+1}S_{i+2} 等于 110110 或 011011,然后将这三个字符替换成 110110 或 011011(可以替换成任意一个)。

Aoba 喜欢操作 2,但不喜欢操作 1。请问将 SS 变为 TT 至少需要进行多少次操作 1?如果无论进行多少次操作都无法将 SS 变为 TT,输出 −1-1。

输入格式

输入从标准输入按以下格式给出:

N
S
T

输出格式

输出一个整数,表示将 SS 变为 TT 所需的操作 1 的最小次数。如果无法将 SS 变为 TT,则输出 −1-1。

输入输出样例

  • 输入#1

    7
    1011110
    1100111

    输出#1

    1
  • 输入#2

    3
    110
    101

    输出#2

    -1
  • 输入#3

    26
    10101000010101010101010111
    01110101000111001011010100

    输出#3

    24

说明/提示

样例解释 1

首先,在 i=5i=5 处进行操作 2,使 S=1011011S= 1011011。

接着,在 i=3i=3 处进行操作 2,使 S=1001111S= 1001111。

最后,在 i=2i=2 处进行操作 1,使 S=1100111S= 1100111。

这样最终 SS 就被变换成了 TT。为了完成这个过程,最少需要进行 11 次操作 1,所以答案为 11。

样例解释 2

无法将 SS 变为 TT。

数据范围

  • 3≤N≤3×1053 \leq N \leq 3 \times 10^5
  • NN 是整数
  • SS 和 TT 是长度为 NN 只包含 00 和 11 的字符串

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页