topcoder SRM588 DV2 1000

DV2第一题和第二题比较简单,只讲1000分的这道题。

Alice和Bob,如果Alice在制定步骤里能catch到Bob那就算赢了,否则就是输了。

用map表示地图,1是Bob可以走的,0是Bob不能走的。-1是Alice所在位置,当然Bob也不能走。

思路:

1. Alice先出发,走到下一个位置。map里面当前Alice位置置-1。上一步Alice所在位置要重新置为1;

2. 用数组array1记录所有当前Bob可以在的位置,初始只有一个位置,就是Bob最开始站的位置。

3. 新开一个数组array2,存下一步Bob可以走的位置。对于Bob每一个现在的位置,进行上下左右探索,如果map值为1则可以走,位置加入数组(要保证不重复)。

4. array1 = array2. 赋值后Array1就是现在Bob可以在的位置。如果array1已经为空了,说明Bob无路可走,直接返回Alice wins就行,否则返回到1。继续。

你可能感兴趣的:(算法,topcoder)