本题相当于机器人在行进的过程中,其体型会不断扩大。当 ”一块“ 机器人某个位置接触到岩石以后,停止前进。
下文中,我们把原来的机器人叫做本体,复制出来的机器人叫做复制。
..... ..... ..X..
..... ..X.. .XXX.
..X.. -> .XXX. -> XXXXX
..... ..X.. .XXX.
..... ..... ..X..
上图是一个机器人复制两次后,得到的机器人群,可以看到,进过 i 次复制以后,所有与本体距离不超过 i 的网格,都会有机器人存在。这些位置,有可能是本体经过的位置,也可能是复制经过的位置。
因此,我们首先处理有本体经过的位置。本体能否进入某个位置 (r,c),这取决于本体复制的次数 t,以及离最近岩石的距离 rockDist[r][c]。
具体来说,假设本体当前的位置为 (x,y),从出发点到当前位置的距离为 dis,那么所需的时间也为 dis,复制的次数 t=⌊Ddis⌋。若 t≥rockDist[r][c]。这意味着当前位置的机器人再次复制,已经撞到岩石,不能继续移动。
1