有一个密码锁,其有N位,每一位可以是一个0~9的数字,开启密码锁需要将锁上每一位数字转到解锁密码一致.这个类似你旅行用的行李箱上的密码锁,密码锁的每一位其实是一个圆形转盘,上面依次标了0,1,...9,对每一位来说可以正向或者逆向拨动,正向拨动时原有数字x会变成新的数字(x+1 mod 10),例如1->2,2->3,9->0:同理逆向拨动变为(x-1 mod 10)即9->8,5->4,0->9.定义对密码锁的一次操作:选择一个连续的区间[L,R],可以只包含一位即L…
https://vjudge.net/problem/UVA-1631 题意: 有一个n位密码锁,每位都是0~9,可以循环旋转.每次可以让1~3个相邻数字同时往上或者往下转一格.输入初始状态和终止状态,问最少要转几次. 思路: d[i][x][y][z]表示当前在复原第 i 位,当然前 i 位已经复原完毕,x代表第 i 位的数字,y代表第 i+1的数字, z代表第 i+2 的数字时的最少旋转次数. 每次我们需要复原第 i 位的数字,因为可以向上旋转和向下旋转2种方式,所以我们需要分别计算出向上和…
简评:这篇文章介绍怎么用 3D 打印机做一个密码锁,巧妙地利用机械结构的变化实现锁的功能,相当有趣! 3D 打印机非常适合打印静态物体.如果你够聪明,还可以打印出功能物件.如果你特别特别聪明,那你能做到更多.喏,有人就利用 3D 打印机打印出了一个密码锁,这是他们正在研究的关于「mechanical digital logic」的一个应用. 视频 这个密码锁的关键部位是一系列双稳态弹簧(bistable springs),当输入正确的密码,内部结构将会被触发从而解锁. 在锁芯内部,有着大部分数字…