题目名称 | 3859. [USACO23 Jan Silver] Find and Replace |
---|---|
输入输出 | fars.in/out |
难度等级 | ★★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 15 |
题目来源 | yuan 于2023-03-27加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:0, 提交:0, 通过率:0% | |||
本题关联比赛 | |||
4043级2023省选模拟赛4 | |||
EYOI常规赛9 3/4th |
关于 Find and Replace 的近10条评论(全部评论) |
---|
fars.in
输出文件:fars.out
简单对比给定一个由大小写英文字母构成的字符串 $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$。
4 abc abc BBC ABC abc bbc ABCD BACD
0 -1 1 3
点击下载样例2/3
第 $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$”组成