保险箱
某保险箱的密码盘由一排 n 个滚轮构成,每个滚轮上都有 0,1,⋯,9 这十个数。
每次操作都可以选择任意一个滚轮,将它指示的数加 1 或减 1,但结果不得超出 [0,9] 的范围。
注意:在一次操作中,0 只能加 1 变成 1,9 只能减 1 变成 8;0 和 9 之间无法直接切换。
给定初始状态(初始时 n 个滚轮各自指示的数)和整数 k,求满足以下要求的目标状态:
- 目标状态中存在一个数出现了至少 k 次。
- 在满足上一条要求的前提下,从初始状态把密码盘调到目标状态所需的操作次数最少。
- 在满足前两条要求的前提下,目标状态的字典序最小。
对于长度相等的由数字字符构成的字符串,字典序比较等价于将其视为十进制整数后的数值比较。
输出从初始状态把密码盘调到目标状态所需的最少操作次数,以及满足要求的目标状态。