理解这个编程挑战逻辑

Understanding this programming challenge logic

我正在研究这个 programming challenge,但我在理解棋盘的组成方面遇到了一些困难。从我设法理解的是:

我打算做的是开始一个棋盘,第一个方格是 (0,0),最后一个方格是 (3,3)。我需要从第一个位置开始迭代,然后执行操作以查找该正方形是否小于 Ri,如果它小于用计数器标记该入口并继续。

我手工检查了第一种情况的输出是否正确,我得到了 5 个可到达的方块,但输出得到了 10。我从 (1,1) 到 (4) 重新绘制棋盘,4) 手工算了一下,也得到了 5。第一个测试是 (1,1,1) 攻击者在位置 (1,1),范围为 1.

如果我使用从 (0,0) 开始的棋盘,那么可以攻击的方块是:2,5,6,7 和 10。如果我使用从 (1,1) 开始的棋盘,那么可以攻击的方块是: 1,2,5,9 和 10.

首先,我会坚持他们的记法,做基于 1 的事情。其次,人们确实会攻击他们所在的广场。所以在第一种情况下,(1,1)攻击者攻击(1,1),(1,2)和(2,1),(3,1)攻击(3,1),(3,2 ) 和 (4,1) [也是 (2,1),但我们已经计算过了] 和 (3,3) 攻击自身,(2,3),(3,4) 和 (4,3)。 [还有 (3,2),我们已经计算过了] 那是 10 个正方形被攻击。 下一个案例指定了一个 1 x 10 的新棋盘,其中有 1 个攻击者。该攻击者坐在 (1,1) 上并攻击 (1,1) 和 (1,2) 所以 2 个方格。那么你的算法应该可以工作(按照你描述的方式,你需要在攻击者身上嵌套第二个迭代循环,但我宁愿在一个循环中一次读取一个攻击者,然后在方块上迭代)。