P16328 夜曲

题目背景

![](https://cdn.luogu.com.cn/upload/image_hosting/20q9euzv.png) 在旅程的尽头,那些本不属于我们的,已物归原主。

题目描述

给定长度为 $n$ 的两个字符串 $s, t$,下标从 $1$ 开始。 一次操作可以自由选择一个长度为 $n$、值域为 $[1, n]$ 的**不降**整数序列 $p$,满足 $|p_i-i|\le 1$。随后同时令所有 $s_i\gets s_{p_i}$。 求能把 $s$ 变为 $t$ 的最小操作次数,若无解输出 $-1$。

输入格式

本题包含多组测试数据。 输入的第一行包含一个正整数 $T$,表示测试数据组数。 接下来依次输入每组测试数据,对于每组测试数据,第一行输入字符串 $s$,第二行输入字符串 $t$。

输出格式

对于每组测试数据,输出一行一个整数,表示答案。

说明/提示

### 样例解释 对于样例中第一组测试数据,我们可以通过如下方式使 $s$ 变成 $t$: $$\texttt{aabbccc}\to\texttt{abbbbcc}\to\texttt{abbbbbc}$$ 两次操作的 $p$ 分别为 $[1,3,4,4,4,5,6]$,$[1,2,3,4,5,5,7]$。 不存在方式使得可以通过一次操作将 $s$ 变为 $t$,故答案为 $2$。 ### 数据范围 **本题开启捆绑测试。** 令 $m$ 表示字符集大小,即字符串中仅会出现前 $m$ 个小写字母。 ::cute-table | $\text{Subtask}$ | $n,\sum n\le$ | $m\le$ | 特殊性质 |$\text{Score}$ | | :-----------: | :-----------: | :-----------: | :---------: | :----------: | |$1$ | $20$| $2$ | A | $15$ | |$2$ | $5\times 10^3$ | ^ | 无 | $30$ | |$3$ | $10^6$| $26$ | B | $25$ | |$4$ | ^| ^ | 无 | $30$ | 特殊性质 A:保证 $s_i\le s_{i+1}$,$t_i\le t_{i+1}$。 特殊性质 B:保证 $t$ 仅包含字符 `a`。 对于所有数据,保证 $1\le T \le 5\times 10^3$,$1\le n,\sum n\le 10^6$,字符串仅包含小写字母,$|s|=|t|$。