IBM Research

谜题   IBM-273

两个障碍让机器人完成两次访问

IBM Research · Ponder This · 2021 年 1 月

IBM Ponder This #273 · 2021 年 1 月

机器人在 N×N 环面网格上分配疫苗,起点为左上角 (0,0),初始朝上,各格状态均为 0。每步先处理当前格:状态 0 变为 1,并顺时针转 90°;状态 1 变为 2,并逆时针转 90°;状态 2 不变,也不转向。随后沿当前方向前进一步,越界从对侧进入。

4×4 的初始若干步如下,方括号标出机器人:

[0]  0   0   0
 0   0   0   0
 0   0   0   0
 0   0   0   0
            
 1  [0]  0   0
 0   0   0   0
 0   0   0   0
 0   0   0   0
            
 1   1   0   0
 0  [0]  0   0
 0   0   0   0
 0   0   0   0
    
 1   1   0   0
[0]  1   0   0
 0   0   0   0
 0   0   0   0
        
[1]  1   0   0
 1   1   0   0
 0   0   0   0
 0   0   0   0
        
 2   1   0  [0]
 1   1   0   0
 0   0   0   0
 0   0   0   0

这个例子无法使全部格子达到 2。现在允许事先把一些格子改为 B。机器人遇到 B 时不改变格子,逆时针转 90°再前进;B 格不需要达到 2。例子如下:

[0]  B   0   0
 0   0   0   0
 0   0   0   0
 0   0   0   0
            
 1  [B]  0   0
 0   0   0   0
 0   0   0   0
 0   0   0   0
            
 1   B   0   0
 0   0   0   0
 0   0   0   0
 0  [0]  0   0

任务:N=50 时放置恰好两个 B,使所有其他格最终达到 2。答案为 [(a,b),(x,y)]。

附加问题:N=100 时用至多三个 B 完成,可获一星;找出两个 B 已不够用的最小 N,可获两星。

解答

认真尝试后再打开

待补充。