Find the number of robots needed to walk through the rectangular grid

Ian Kelly ian.g.kelly at gmail.com
Sat Apr 9 12:43:23 EDT 2016


On Sat, Apr 9, 2016 at 8:18 AM, Joe <lildinho14 at gmail.com> wrote:
> How to find the number of robots needed to walk through the rectangular grid
> The movement of a robot in the field is divided into successive steps
>
> In one step a robot can move either horizontally or vertically (in one row or in one column of cells) by some number of cells
>
> A robot can move in one step from cell X to cell Y if and only if the distance between the centers of the cells X and Y is equal to the sum of integers contained in X and Y
>
> Cell X is reachable for robot A if either A is currently standing in the cell X or A can reach X after some number of steps. During the transfer the robot can choose the direction (horizontal or vertical) of each step arbitrarily
> [![enter image description here][1]][1]
>
> I started implementing it by first checking the row and print the index of the Cell X and Y where the distance is equal to the sum of integers contained in X and Y
>
> but after coding I found it difficult to remember the index when moving vertically
>
>  So I thought to Build a graph where nodes are grid cells and edges are legal direct movements, then run any connected components algorithm to find which cells are reachable from each other
>
>
> Can anyone implement it with graphs or queue?

I'd use a disjoint-set data structure. The number of robots needed is
equal to the number of disjoint subsets.

https://en.wikipedia.org/wiki/Disjoint-set_data_structure



More information about the Python-list mailing list