Suppose that there exists a cycle, for example, length L
Simple case one
To make it easier, we first consider the case when a whole loop of two particles at the same time. These particles are in the same position when n*A = n*B (mod L) for some positive integer n , which is the number of steps until they are assembled again. Taking n=L gives one solution (although there may be a smaller solution). Thus, after L units of time, particle A made A fires around the cycle to return at the beginning, and particle B made B fires around the cycle to return at the beginning, where they happily collide.
General case
Now, what happens when they do not enter the cycle at the same time? Let A be a slower particle, i.e. A<B , and let A enter the loop at time m and can call the position where A enters loop 0 (since they are in the loop, they can never leave it, so I just rename the positions by subtracting A*m , distance A passed through m units of time). Then at this time B already in position m*(BA) (this is the real position after m units of time B*m , and therefore it is renamed to position B*mA*m ). Then we need to show that there exists a time n such that n*A = n*B+m*(BA) (mod L) . That is, we need a solution to the modular equation
 (n+m) * (AB) = 0 (mod L) 
Taking n = k*Lm for k large enough for k*L>m do the trick, although again there may be a smaller solution.
Therefore, yes, they always meet.
Pengone 
source share