无线网络覆盖

时间限制:3000 ms  |  内存限制:65535 KB
难度:3

描述

我们的乐乐同学对于网络可算得上是情有独钟,他有一个计划,那就是用无线网覆盖郑州大学。

无线网络覆盖方案设计与勘测指南
图片素材来自免费商用图库(pixabay),非本站项目实拍。

现在学校给了他一个机会,因此他要购买很多的无线路由。现在他正在部署某条大道的网络,而学校只允许把他的无线路由器放在路的正中间。我们默认这条大道是笔直的并且它在任何地方的宽度都一样。并且所有的路由器的覆盖面积是相同的。现在乐乐计算出这条大道的长和宽,以及路由器的覆盖半径,想请你帮忙,帮他计算出他最少要购买的路由器的数量。

注意:为了防止某种干扰,两台无线路由之间的最小距离不能小于1米

图1中为一条矩形的道路,中间的虚线代表中线。图2为最小覆盖的示意图。

 

输入

输入包括多组测试数据

第一部分:一个整数T(1<=T<=500)

第二部分:一共T行,每行包括三个整数L,D,R代表路的长,宽和覆盖半径(米)。

(1<=L<=100000),(1<=D<=50),(1<=R<=200)。

输出

对于每组测试数据输出各占一行,只有一个整数,表示最少的路由器数量。如果不能覆盖,请输出impossible

样例输入

2
40 6 5
40 10 5

样例输出

5
impossible

个人理解:根据题目要求,得到两个条件,半径R大于宽度D的1/2,同时两台无线路由器的距离不能小于1;用到了ceil,当路由器台数正好为整数,得出其值,如果不是整数,就加1.

结果 时间 内存 语言
Accepted 0 240 C
#include<stdio.h>
#include<math.h>//下面用到了sqrt;
int main()
{
    int T;
    scanf("%d",&T);
    int i;
    double m,n;
    for(i=1;i<=T;i++)
    {
       int L,D,R;
       scanf("%d %d %d",&L,&D,&R);
       m=sqrt(R*R-((D*D)/4.0));
       if(R>D/2.0||2*m>=1.0)//两个判断条件;
       {
           n=L/(2*m);
           printf("%dn",(int)ceil(n));
       }
       else
        printf("impossiblen");
    }
    return 0;
}

覆盖方案选型:AC+AP、Mesh 还是放装

大面积覆盖没有”通用方案”。AC+FIT AP 适合酒店、办公等需要统一管控与漫游认证的场景,运维集中但前期投入高;Mesh 适合已装修、不便布线的家庭/小店,回传占用无线带宽、带机量有限;放装型路由/AP 适合单区域中小面积。选型核心是勘测:用面积、隔墙材质(混凝土比石膏板衰减大得多)、并发终端数倒推 AP 数量与布点。

链路预算与验收

覆盖设计要做链路预算:发射功率 – 空间损耗 – 穿透损耗 ≥ 终端灵敏度。验收看边缘场强(建议 ≥ -65dBm)、ping 抖动与漫游切换时延(语音/视频业务要求 <50ms)。农村或开阔场景还要考虑回传(光纤/网桥/4G 回传)容量,避免”无线通了但上不了网”。

相关阅读