AT_agc019_d.[AGC019D] Shift and Flip

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

有两个长度相同、仅由 00 和 11 组成的字符串 A=A1A2...AnA = A_1A_2...A_n 和 B=B1B2...BnB = B_1B_2...B_n。

你可以对 AA 进行如下操作,次数不限且顺序任意:

  • 将 AA 向左循环移位一位(即将 A=A1A2...AnA=A_1A_2...A_n 变为 A2A3...AnA1A_2A_3...A_nA_1)。
  • 将 AA 向右循环移位一位(即将 A=A1A2...AnA=A_1A_2...A_n 变为 AnA1A2...An−1A_nA_1A_2...A_{n-1})。
  • 任意选择一个 Bi=1B_i=1 的位置 ii,将 AiA_i 反转(即令 Ai=1−AiA_i=1-A_i)。

你的目标是使字符串 AA 和 BB 完全相同。

请输出使 AA 和 BB 相同所需的最小操作次数。如果无法做到,请输出 −1-1。

输入格式

输入以以下格式从标准输入读入:

AA BB

输出格式

输出使字符串 AA 和 BB 完全相同所需的最小操作次数。如果无法实现,请输出 −1-1。

输入输出样例

  • 输入#1

    1010
    1100

    输出#1

    3
  • 输入#2

    1
    0

    输出#2

    -1
  • 输入#3

    11010
    10001

    输出#3

    4
  • 输入#4

    0100100
    1111111

    输出#4

    5

说明/提示

限制条件

  • 1≤∣A∣=∣B∣≤2,0001 \leq |A|=|B| \leq 2{,}000
  • A,BA,B 仅包含 00 和 11。

样例解释 1

以下是一种实现目标的最短操作序列:

  • 反转 A1A_1:A=0010A = 0010
  • 左移一次:A=0100A = 0100
  • 再次反转 A1A_1:A=1100A = 1100

样例解释 2

没有办法反转 AA 的唯一一个比特。

样例解释 3

以下是一种实现目标的最短操作序列:

  • 右移一次:A=01101A = 01101
  • 反转 A5A_5:A=01100A = 01100
  • 左移一次:A=11000A = 11000
  • 再次左移一次:A=10001A = 10001

样例解释 4

只需按任意顺序依次反转 A1A_1、A3A_3、A4A_4、A6A_6、A7A_7 即可。

由 ChatGPT 5 翻译

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

首页