码迷,mamicode.com
首页 > 其他好文 > 详细

nyoj-无线网络覆盖

时间:2015-03-28 12:55:24      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:

这题的错误是少考虑了一种情况,路由覆盖的直径小于路宽的时候,直接判错!!!不用计算路由之间距离了

思路就是计算路由间距为根号下2(r^2-(w/2)^2),这里面有个数据类型转换的问题,w/2这个值是不精确的,还有sqrt对负数也是无法识别的,所以要人工加上2*r > w。

还有最后输出用了上取整

#include <iostream>
#include <cmath>

using namespace std;
 
int main()
{
    int n;
    cin >> n;
    int l,w,r;
     double d; 
    while(n--)
    {
              
              cin >> l >> w >> r;
              d = sqrt(r*r-w*1.0/2*w/2);
              if(2*d < 1.0 + 1e-6||w > 2*r)
                     cout << "impossible";
              else
                     cout << ceil(l*1.0/(2*d));
              cout << endl;
}
return 0;
}
                     

 

nyoj-无线网络覆盖

标签:

原文地址:http://www.cnblogs.com/ekinzhang/p/4374052.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!