听说这个题暴力只能过80%,考虑到中间的重复搜索,考虑记忆化搜索优化应该就能过了。具体思路如下: 设当前生成的新密码为arr,那么令dp[i][j]表示arr[i]=j时,生成的新密码的后缀arr[i,n)的可能种数。举个例子,假如说arr[i] = j,由于旧密码是固定的,那么从 arr[i]=j 开始生成的新密码后缀的种数必然是确定的。那么dfs时若第一次搜索这种情况,就把这个种数记下来保存到dp[i][j]中。若下次在搜索到这种情况,就无需再次搜索,直接取出dp[i][j]即可。 还有一个问题是如何判断生成的新密码中是否会出现旧密码呢?首先思考一下可以知道如果存在,那么必然只...