我用的是DP,取余后能AC。 主要状态定义有点复杂,每个状态要存三个变量,当n = i 时,要保存此时 末位为1的安全数的数量 top,倒数第二位为1 的安全数的数量 sec,以及除了以上两种情况外的安全数的数量els,总计安全的数量为三者之和。 状态转移方程是 top[i] = els[i-1] * 1,sec[i] = top[i-1] * 8,els = 8 * (sec[i-1] + els[i-1])。 直接用滚动数组就行,不用On的空间。