【发布时间】:2020-10-06 02:28:58
【问题描述】:
我最近遇到了这个动态编程问题,我想看看是否有人对解决这个问题的方法有想法。我遇到了困难,这可能是因为我陷入了创建一棵巨大的树来处理所有可能性的想法。
问题
有一个角色可以在二维 (x,y) 上移动 坐标网格。角色被放置在点 (0,0)。
角色可以从 (x, y) 移动到 (x+1, y), (x-1, y), (x, y+1), 和 (x, y-1)。
有些地点很危险,并且有地雷。要知道哪些点 是安全的,我们检查 abs(x) 的数字之和是否加上 abs(y)的位数小于等于23。
例如,点 (64, -59) 不安全,因为 6 + 4 + 5 + 9 = 24,大于 23。点 (105, -17) 是安全的,因为 1
- 0 + 5 + 1 + 7 = 14,小于 23。
角色可以访问的区域有多大?
【问题讨论】:
-
坐标网格有什么限制吗?否则安全区显然是无限的(1 万亿 x 1 万亿 = 2,依此类推) 安全区应该是相邻的吗?另一个问题,实际上是一个0x0点吗?角色肯定可以通过这条线无限移动,并且总是得到 nx0 = 0(安全方块)
-
这些点是三角形的一部分吗?
(319,219), (398,298)? i.stack.imgur.com/ToNGJ.png -
你是如何在没有经过 23 的 599 的情况下达到 698 的?
-
您没有减去您方格中被地雷覆盖的区域,或者由于被地雷包围而无法进入的区域。
-
@HikmatFarhat 599 是可以的,因为数字的总和必须小于或等于 23,所以数字加起来是 23 是可以的,但不是24.
标签: algorithm dynamic-programming