首页 > 其他 > 详细

nyoj-无线网络覆盖

时间:2015-03-28 12:54:57      阅读:231      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!