UVA13049 Combination Lock
题目背景
我们急需专业高手——
一双能瞬间打开密码锁的手。
我们已经知道锁的初始状态和目标状态,
但我们需要有人能用最少的步数转动转轮,
以尽快开锁。
题目描述
多轮密码锁有多个转轮,每个转轮可以顺时针或逆时针转动,以选定一个 $0$ 到 $9$ 的数字。数字是循环的,所以顺时针越过 $9$ 之后,下一个数字就是 $0$ 。
同样,逆时针越过 $0$ 之后,下一个数字就是 $9$ 。
给定密码锁的转轮数量、初始状态和目标状态,你需要找出从初始状态到目标状态所需的最少步数。转轮上每改变一个数字,就算作一步。例如,对于一个 $4$ 位密码锁,如果初始状态是“ $1234$ ”,目标状态是“ $2546$ ”,则至少需要 $7$ 步(从 $1$ 到 $2$ 需 $1$ 步,从 $2$ 到 $5$ 需 $3$ 步,从 $3$ 到 $4$ 需 $1$ 步,从 $4$ 到 $6$ 需 $2$ 步)。
输入格式
输入的第一行将包含一个整数 $T$ ( $1 \le T \le 200$ ),表示测试用例的数量。
接下来的 $T$ 行中,每行会给你 $n$ 、 $\textit{initial}$ 和 $\textit{target}$ 。
其中 $n$ ( $1 \le n \le 100$ )是一个整数,表示密码锁的转轮数量。
数字字符串 $\textit{initial}$ 和 $\textit{target}$ 分别表示锁的初始状态和目标状态。
两个字符串的长度都恰好为 $n$ ,且只包含十进制数字。
输出格式
对于输入的每一行,请按照 `Case X: Y` 的格式输出用例编号和答案。
其中 $X$ 表示用例编号(从 $1$ 开始),$Y$ 表示从初始状态到目标状态所需的最少步数。
具体格式请参考样例输入输出。
说明/提示
翻译由 DeepSeek V4 完成