← RoseCode

ROSECODE 180

试管

Tubes

sinan · 编程 ·

考虑名为 A、B、C、D、E、F 的 6 管 分别具有容量 10,10,7,7,7,7。 在第一种状态下,它们包含以下内容 某种液体的单位量(A 至 F): 9、7、6、5、0、0 目标状态如下(A到F): 9、2、2、2、5、7 将每个状态视为十六进制数字 (FEDCBA) 并 为它们分配一个 6 位数字 如以下示例所示: 第一个状态=005679 最后状态=752229 我们需要以最低限度达到目标状态 步数。 设 A 为大小为 k 的最终数组,其中包含状态 (从第一个到最后一个)其中: A=[005679,...,752229] 其中A[i]是第i阶段的状态,i=1,..,k 设 N 为连接得到的十六进制数 上述数组的十六进制数字: N=005679...752229 或 N=A[1]*B^(k-1)+A[2]*B^(k-2)+...+A[k]*B^0 其中 B=16^6 找到最小的N。 (即找到字典顺序第一的最短路径。) 答案格式:N Mod 1000000007 示例: 容量:7,6,5,4,4,4 第一:7、5、0、0、0、0 最后:3、2、3、4、0、0 1:7、5、0、0、0、0 s=000057 2:3、5、0、4、0、0 s=004053 3:3、5、4、0、0、0 s=000453 4:3、6、3、0、0、0 s=000363 5:3、2、3、4、0、0 s=004323 N = 000057004053000453000363004323(十六进制) N Mod 1000000007 = 10356901(十进制) [我的计时:25s]