CF939D Love Rescue
题目描述
Valya 和 Tolya 是一对理想的情侣,但他们有时也会吵架。最近,Valya 因为 Tolya 穿着一件字母印花与她毛衣上印花不同的 T 恤来看她而生气了。现在她不想见他,Tolya 只能整天坐在房间里对着她的照片哭泣。
这个故事本可以很悲伤,但仙女教母(Tolya 的祖母)决定帮助他们修复关系。她偷偷拿走了 Tolya 的 T 恤和 Valya 的毛衣,想让它们上的字母印花变得一样。为此,她可以用一单位魔力购买一个法术,这个法术可以改变衣服上的某些字母。你的任务是计算 Tolya 的祖母最少需要花费多少魔力,才能挽救 Tolya 和 Valya 的爱情。
更正式地说,Tolya 的 T 恤和 Valya 的毛衣上的字母印花分别是两个长度为 $n$ 的字符串,仅包含小写英文字母。每花费一单位魔力,祖母可以购买一个形如 $(c_1, c_2)$ 的法术(其中 $c_1$ 和 $c_2$ 是某些小写英文字母),该法术可以任意次数地将单个字母 $c_1$ 变为 $c_2$,或将 $c_2$ 变为 $c_1$,并且可以作用于 Tolya 的 T 恤和 Valya 的毛衣。你需要找出祖母最少需要购买多少个法术,才能让两个印花完全一致,并输出所需的法术集合。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 10^5$),表示字母印花的长度。
第二行包含一个长度为 $n$ 的字符串,仅由小写英文字母组成,表示 Valya 毛衣上的字母印花。
第三行以相同格式给出 Tolya T 恤上的字母印花。
输出格式
第一行输出一个整数 $t$,表示挽救 Valya 和 Tolya 爱情所需的最小魔力值。
接下来的 $t$ 行,每行输出一对用空格分隔的小写英文字母,表示祖母需要购买的法术。法术及法术中的字母顺序可以任意输出。
如果有多组最优解,输出任意一组即可。
说明/提示
在第一个样例中,只需购买两个法术:('a','d') 和 ('b','a')。然后,第一位字母可以通过将 'a' 替换为 'd' 使其一致;第二位字母可以通过将 'b' 替换为 'a' 使其一致;第三位字母可以先将 'b' 替换为 'a',再将 'a' 替换为 'd',使其一致。
由 ChatGPT 4.1 翻译