行李箱上的密码锁大家都知道, 现在给我们长度为n(n<=1000)的两个密码串,每次可以转动连续的1->3个字符1格,问最少多少次可以使得第一个串变成第二个串 经历了搜索,贪心,的思路后,最终想到了动态规划. 因为第一个字符如果不在位,那么肯定是要处理的,否则那么相当于子问题. 所以定义dp[i][k1][k2]为第i个字符在位时,第i+1个字符向上走了k1格,第i+2个字符向上走了k2格. 当状态为dp[i][k1][k2]时,为了要使的第i+1在位, 那么可以向上走 t = (des[i]…