求圆面覆盖

playcs 2008-05-31 08:22:40
在平面上有一个长为L,宽为W的长方形,左下角坐标为(0,0),右上角坐标为(L,W)。给定一些圆,第i个圆的圆心坐标为(xi,yi),半径为Ri。
你的任务是求最小的正实数k,使得把每个圆的半径变为原来的k倍后(即:第i个圆半径变为kRi,圆心位置不变),长方形将被这些圆完全覆盖。换句话说,长方形内部或边界上的任意点均至少在一个圆的内部或边界上。


输入格式
输入第一行包含三个整数n, L, W(1<=n<=50,1<=L,W<=1000),即圆的个数、长方形的长和宽。
以下n行,每行三个不超过1000的正整数xi, yi和Ri。

输出格式
仅一行,包含一个实数k,保留小数点后三位。

样例输入
1 2 2
1 1 1


样例输出
1.414

...全文
158 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjmde678 2008-08-28
  • 打赏
  • 举报
回复
在一个指定的区域内,有一系列称为一跳覆盖区的小区域将其有重叠地完全覆盖,对每一个跳覆盖区分配一个信道,处于几个一跳覆盖区重叠部分的节点同时使用几个信道工作。在同一个一跳覆盖区内的用户使用同一个信道相互通信;不同一跳覆盖区的用户之间通过中间节点转发。如果区域中任意两个节点都能通信,则称之为连通。
因此,网络的区域覆盖和连通性是无线传感器研究的一个主要问题。在无线传感器网络中,节点的分布较为密集,因此有一定的节点是冗余节点,现在,在一个边长为1000正方形区域内,构建一个无线传感器网络,完成以下工作。
(1) 在正方形区域内,如图1所示,每个节点信号的传输范围为R(R=100),最少需要多少个节点,才能覆盖整个正方形区域?
(2) 在无线传感器网络内(图 2),假设A节点需要传输数据到D节点,为了能够寻找最优的路径,设计方法分析如何从A节点到D节点的数据传输路径最短?并结合不同的算法,分析在该问题下的最优可行解,以及时间和空间的复杂度(各个边上的数值为节点间的数据传输路径)。
(3) 在无线传感器网络,由于节点之间必须通过协作才能完成特定的任务,节点之间的连通性是网络的一个必须的要求,节点之间通过一个公共的节点互相通讯,在问题(1)的基础上,要求相邻面积不得小于8%,至少需要激活多少个节点,才能覆盖整个区域?当相邻面积不少于15%,至少需要多少个节点才能覆盖整个区域?
怎么解这个问题
Dancing_Sea 2008-06-01
  • 打赏
  • 举报
回复
mark

1、可以先放一个园进去,得到k1,然后再放一个园进去,得到k2,以此类推
但可操作性不大

2、二分插值,挑一个大的k,满足覆盖条件,然后
left = k / 2;满足覆盖,k = left, 否则 left = (left + k) / 2
直到找到合适的k为止

3、如果不要求解析解,矩形里面的点只考虑格点,那么单个点求最小ki,
每个点都遍历一次,求个最大的ki。园的个数有限,速度不会太慢。最大n * L * W

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧