CF2242D Two Digit Strings
题目描述
给定两个仅由数字组成的字符串 $a$ 和 $b$。每次操作,你可以选择其中任意一个字符串的相邻两个字符,并将它们替换为它们之和对 $10$ 取模后的结果。例如,对字符串 $57246$,你可以通过一次操作得到如下字符串:
- $ \mathbf{57}246 \rightarrow 2246 $;
- $ 5\mathbf{72}46 \rightarrow 5946 $;
- $ 57\mathbf{24}6 \rightarrow 5766 $;
- $ 572\mathbf{46} \rightarrow 5720 $;
注意,每进行一次这样的操作,字符串的长度都会减少 $1$。
你可以进行任意多次这样的操作(也可以不操作)。你的目标是将两个字符串变得相同(即 $|a| = |b|$ 并且对于所有 $i$,$a_i = b_i$)。请计算最终可以得到的相同字符串的最大长度。
输入格式
第一行为一个整数 $t$($1 \le t \le 2 \cdot 10^3$),表示测试用例的数量。
每个测试用例包含两行:
第一行为字符串 $a$($1 \le |a| \le 5 \cdot 10^3$),仅包含数字。
第二行为字符串 $b$($1 \le |b| \le 5 \cdot 10^3$),仅包含数字。
额外限制:所有测试用例中 $\sum (|a| + |b|) \le 10^4$。
输出格式
对于每个测试用例,输出一个整数,表示最终可以得到的相同字符串的最大长度。如果无法使字符串相同,输出 $-1$。
说明/提示
在第一个样例中,最大可以得到长度为 $2$ 的相同字符串:
- $ \mathbf{51}47 \rightarrow 6\mathbf{47} \rightarrow 61 $;
- $ \mathbf{44}441 \rightarrow \mathbf{84}41 \rightarrow \mathbf{24}1 \rightarrow 61 $。
在第二个样例中,无法让 $a$ 和 $b$ 相同,因此输出 $-1$。
在第三个样例中,最大可以得到长度为 $5$ 的相同字符串:
- $ 1234\mathbf{50} \rightarrow 12345 $;
- $ \mathbf{01}2345 \rightarrow 12345 $。
由 ChatGPT 5 翻译