#P10069. [CCO 2023] Flip it and Stick it

    ID: 11454 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 显示难度提高+/省选− 上传者: 标签>2023CCO(加拿大)

[CCO 2023] Flip it and Stick it

题目描述

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

选择 SS 的一个子串并将其翻转,然后将字符串的各部分按照原来的顺序粘贴在一起,形成新的字符串 SS。 例如,Finn 可以取字符串 S=101100S=101100,取从第 2 位开始的子串 011011(字符串的编号是从 11 开始的),并在一次操作中创建字符串 S=111000S=111000。

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

输入格式

第一行一个字符串 SS。

第二行一个字符串 TT。

输出格式

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

100110
10
2
000
00
-1

提示

样例解释 1

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

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

样例解释 2

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

对于所有的数据,有 1≤∣S∣≤2×1051 \leq|S| \leq 2\times 10^5,1≤∣T∣≤31 \leq|T| \leq 3。

设 ∣T∣=l|T|=l。

子任务编号 分值 ll 的限制
1 4 l=1l=1
2 12 l=2,T1≠T2l=2, T_{1} \neq T_{2}
3 16 l=2l=2
4 20 l=3,T1≠T3l=3, T_{1} \neq T_{3}
5 l=3,T1≠T2l=3,T_{1} \neq T_{2}
6 28 l=3l=3