loj#P4035. 「CCO 2023」Flip it and Stick it

「CCO 2023」Flip it and Stick it

题目描述

译自 CCO 2023 Day2 T1「Binaria

Finn 正在玩一款叫做「Flip it and Stick it」的游戏,简称为 FiSi。FiSi 是一款单人游戏,玩法是在两个由 0011 组成的字符串 SSTT 上进行操作。Finn 可以进行以下形式的操作:

  • 选择 SS 的一个子串并将其翻转,然后将字符串的各部分按照原来的顺序粘贴在一起,形成新的字符串 SS

例如,Finn 可以取字符串 S=101100S=101100,取从第 22 位开始的子串 011011(字符串的编号是从 11 开始的),并在一次操作中创建字符串 S=111000S=111000

如果 SS 不包含 TT 作为子串,Finn 就赢得了游戏。你的任务是帮助 Finn 确定赢得游戏所需的最短操作序列的长度,或者告诉他游戏无法获胜。

输入格式

第一行一个字符串 SS

第二行一个字符串 TT

输出格式

输出一行一个整数,表示如果能赢得游戏所需的最少操作次数,否则输出 1-1

100110
10
2

Finn 从字符串 100110100110 开始。他无法通过一次操作后使得 1010 不为子串,但他可以在两次操作后做到。

例如,他的第一次操作可以是翻转从第 44 位到第 66 位的子串(110110),得到 100011100011。然后,他的第二次操作可以是翻转从第 11 位到第 44 位的子串(10001000),得到 000111000111,它不包含 1010 作为子串。

000
00
-1

无论 Finn 进行多少次操作,字符串 TT 总会是 SS 的子串。

数据范围与提示

对于所有的数据,有 1S2×1051 \leq|S| \leq 2\times 10^51T31 \leq|T| \leq 3

子任务编号 分值 TT 的限制
11 44 T=1|T|=1
22 1212 T=2,T1T2|T|=2, T_{1} \neq T_{2}
33 1616 T=2|T|=2
44 2020 T=3,T1T3|T|=3, T_{1} \neq T_{3}
55 2020 T=3,T1T2|T|=3, T_{1} \neq T_{2}
66 2828 T=3|T|=3