zoukankan      html  css  js  c++  java
  • 要买多少路由器? 水题.

    题目描述
    
    
    
    
    
    
    我们的乐乐同学对于网络可算得上是情有独钟,他有一个计划,那就是用无线网覆盖整个大学。现在学校给了他一个机会,因此他要购买很多的无线路由。现在他正在部署某条大道的网络,而学校只允许把他的无线路由器放在路的正中间。我们默认这条大道是笔直的并且它在任何地方的宽度都一样。并且所有的路由器的覆盖面积是相同的。现在乐乐计算出这条大道的长和宽,以及路由器的覆盖半径,想请你帮忙,帮他计算出他最少要购买的路由器的数量。
    
    注意:为了防止某种干扰,两台无线路由之间的最小距离不能小于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

    很水的题

    下面附上 我的代码

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        double s,t,i,j,m,n,l,d,r;
        scanf("%lf",&t);
        while(t--)
        {
            scanf("%lf%lf%lf",&l,&d,&r);
            s=pow(r,2)-pow(d/2,2);
            if(s<=0)
                printf("impossible
    ");
            else
            {
                s=2*sqrt(s);
                n=l/s;
                if(n-int(n)==0)
                    printf("%.0lf
    ",n);
                else
                    printf("%.0lf
    ",n+1);
            }
        }
    }

    感想就是  很简单    一个三角形   解决了       需要注意的是    平时多用double  但是 数组的只能是整形    不能是浮点型的.

  • 相关阅读:
    RabbitMQ知识点整理12-消费端的确认与拒绝
    RabbitMQ知识点整理11-消费消息
    RabbitMQ知识点整理0-准备工作和记录
    设计模式-23种设计模式
    设计原则-6大设计原则
    super在python 2.7和Python3中的使用
    rest-framework 视图类源码分析
    celery 组件在django环境应用
    rest framwork 4 分页功能
    rest framework 学习 序列化
  • 原文地址:https://www.cnblogs.com/A-FM/p/5155634.html
Copyright © 2011-2022 走看看