题目名称 3859. [USACO23 Jan Silver] Find and Replace
输入输出 fars.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 15
题目来源 GravatarBenjamin 于2023-03-27加入
开放分组 全部用户
提交状态
分类标签
图论
分享题解
通过:0, 提交:0, 通过率:0%
本题关联比赛
4043级2023省选模拟赛4
EYOI常规赛9 3/4th
关于 Find and Replace 的近10条评论(全部评论)

3859. [USACO23 Jan Silver] Find and Replace

★★☆   输入文件:fars.in   输出文件:fars.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

给定一个由大小写英文字母构成的字符串 $s_1$,你需要通过查找替换操作将其变为另一个由大小写英文字母构成的字符串 $s_2$。


每次操作可以选择一个英文字母 $c_1$ 作为查找字符,再选择一个英文字母 $c_2$ 作为替换字符,并将当前字符串中出现的所有 $c_1$ 替换为 $c_2$。


例如,如果当前字符串为 $aAbBa$,$c_1$ 为 $a$,$c_2$ 为 $B$,则操作过后,当前字符串变为 $BAbBB$。


注意,选定的 $c_1$ 和 $c_2$ 必须均为英文字母(大小写均可)。


请问,为了完成目标,最少需要进行多少次操作。

【输入格式】

第一行包含整数 $T$,表示共有 $T$ 组测试数据。

每组数据占两行,第一行包含字符串 $s_1$,第二行包含字符串 $s_2$。

$1≤T≤10$,同一组数据的 $s_1$ 和 $s_2$ 长度相等,输入中所有字符串的长度之和不超过 $10^5$。

【输出格式】

每组数据输出一行结果,一个整数,表示最少需要的操作次数,如果无法完成目标,则输出 $-1$。

【样例1输入】

4
abc
abc
BBC
ABC
abc
bbc
ABCD
BACD

【样例1输出】

0
-1
1
3

【样例2/3】

点击下载样例2/3

【样例1说明】

第 $1$ 组数据,$s_1$ 和 $s_2$ 完全相同,无需任何操作。

第 $2$ 组数据,无法完成目标,因为无法在保持第 $2$ 个 $B$ 不变的情况下,将第 $1$ 个 $B$ 变为 $A$。

第 $3$ 组数据,只需一步操作:将 $a$ 变为 $b$。

第 $4$ 组数据,需要三步操作,变化过程:$ABCD → EBCD → EACD → BACD$。

【数据规模与约定】

测试点 $2-6:\ length(s_1),length(s_2)\leq 50$

测试点 $7-9:\ $所有字符串仅由小写字母“$a$”到“$e$”组成