【发布时间】:2016-10-27 14:39:11
【问题描述】:
我有一个坐标系统,看起来像 http://i.imgur.com/oKCU2uv.png 点 -> (depthToNode, Node)。但我没有这个结构,只有原始点。您只能从 (x,y) 转到 (x+1,y+1) 或 (x+1,y-1)。
我得到的数据是 n = b 被阻止。下一个 x 总是大于前一个。例如:(x,a,b) -> (4,0,5)。然后我知道x = 4上的未阻塞点是(4,2),(4,4)。注意,如果x是偶数,那么y也一定是偶数,否则我们不能通过这样的点,例如(4,1), (4,3)。
我注意到如果我们的坐标像 (s,m) 并且我想去 (c,d) 那么如果 c+d-s-m >= 0 那么我可以从点 (s,m) 到 (c, d)。但问题是,如果我得到 500000 个带有阻塞点的“支柱”,并且这些点从 y 10^8 被阻塞,那么就有大量的点需要检查。
所以问题是:我如何检查我是否可以从点 (0,0) 到点之一 (x,y) 避开阻碍路径的点。 (x,y) 是最后一个'pillar'中没有被阻挡的所有点
示例 1:
输入:
4
1 0 2
4 -5 3
5 1 3
8 2 5
输出:否
示例 2:
输入:
4
1 0 2
4 3 5
5 -1000 3000
8 1 98
输出:是
【问题讨论】:
-
澄清请求:如果
(x,a,b) → (4,0,5)并且只有值 strictly 小于a和 strictly 大于b的节点被省略,剩余的节点集应为(4,0); (4,2); (4,4)。不等式真的严格吗?在哪一端? -
对不起,我的错误,它应该小于甚至小于a,大于甚至大于b。
标签: algorithm search binary-search-tree