P6259
考虑使用 dfs 模拟。
由于一个程序可能在不进入无限循环的情况下运行很多步,这将会非常缓慢。因此,接下来要加速模拟,可以用记忆化搜索。
在网格中,机器人的可能状态(位置和朝向)只有 \(4 \times R \times C \le 6400\) 种情况。
并且执行程序可能会处于的位置数量 \(s\) 最多也只有 \(36 \times 10^2\)。所以模拟最多的情况数为 \(r \times R \times C \times s \approx 2 \times 10^7\),通过记忆化,时间复杂度可以控制到 \(O(R \times C \times s)\)。
细节可以看代码,大部分代码都写了注释。然后就可以上代码啦!