我无法理解这个问题。这个问题希望我们找到什么以及给出什么。任何人都可以以天真的方式解释它。
问题
黑客警长'社区有一项非常紧急的工作要做。他 需要传播Joker放置的所有炸弹。小丑非常 聪明又残忍。他选择了1000 X 1000点的区域,选择了N. 形式(X,Y)的中心点和每个积分上放置的炸弹 在半径为R的圆形区域上或内部的点 那个选择点。然后他走到每一个这样的地方并激活 那些在至少两个这样的圆形区域上或内部撒谎的炸弹。
为了制定一个有效的炸弹处置小组计划,你 需要帮助警长确定活跃炸弹的数量。
INPUT:
输入的第一行包含N.接下来的N行包含3行 空格分隔整数X Y R如上所述。
输出:
打印活动炸弹的数量。
约束: 1 <= N <= 10 1&lt; = X,Y,R&lt; = 1000 注意:
警长的搜索区域是一个对角点(1,1) 和(1000,1000)
示例输入
2
5 5 2
3 4 3
示例输出
9
解释
以下所有9个点都在至少2个圈内
3 5
4 4
4 5
4 6
5 3
5 4
5 5
5 6
6 4
我不知道如何解决这个问题。小丑在哪里种植炸弹,我应该如何检查一个特定区域是否有炸弹种植。我可能也误解了这一点。
答案 0 :(得分:1)
解释这个的最好方法是从方块开始......
想象一个网格:
a 1 2 3 4 5 6 7
b 1 2 3 4 5 6 7
c 1 2 3 4 5 6 7
d 1 2 3 4 5 6 7
e 1 2 3 4 5 6 7
f 1 2 3 4 5 6 7
假设中心点为(c,4),宽度为3.你的方格将绘制在点(b,3)(b,4)(b,5)(c,3),(d)上,3)(d,4)(d,5)(c,5)
(c,4)将在中间......
所以...用一个正方形你会得到9(加上我描述的所有边缘点和正方形中包含的中心点)。
你被要求做同样的事情.....圈子......祝你好运......
答案 1 :(得分:1)
解释这个问题的最简单方法是:
给定由中心(X,Y)和半径(R)定义的圆列表,1000x1000网格中有多少个积分点(即整数,(1,4)对(1.1,4.4))在这些圈子的2个或更多中。
这就是被问到的。
有很多方法可以解决,但这将是一个不同的问题。
最基本的技术是迭代所有1000x1000点,计算从每个点到每个圆的中心的距离,对于给定圆的距离小于R的那些点,添加1.所有点将报告超过1的值。
这不一定是最有效的算法。例如,如果列表中有4个圆圈,您将计算4,000,000个距离。
但它会奏效。
答案 2 :(得分:0)
有很多方法可以解决这个问题。一种方法是检查矩阵中的每个点以查看它所在的圆圈数。另一种方法是在圆圈内保留一个点列表,如果该点已经存在则递增一个计数器。