10年 ZZUPC校赛第二题 无线网络覆…
2012-12-05 17:07
225 查看
无线网络覆盖
TimeLimit: 1000MS MemoryLimit: 32768 Kb
Description
我们的乐乐同学对于网络可算得上是情有独钟,他有一个计划,那就是用无线网覆盖郑州大学。
现在学校给了他一个机会,因此他要购买很多的无线路由。现在他正在部署某条大道的网络,而学校只允许把他的无线路由器放在路的正中间。我们默认这条大道是笔直的并且它在任何地方的宽度都一样。并且所有的路由器的覆盖面积是相同的。现在乐乐计算出这条大道的长和宽,以及路由器的覆盖半径,想起你帮忙帮他计算出他最少要购买的路由器的数量。
注意:为了防止某种干扰,两台无限路由之间的最小距离不能小于1米。
图1中为一条矩形的道路,中间的虚线代表中线。图2为最小覆盖的示意图。
Input
输入包括多组测试数据:
第一部分:一个整数T(1<=T<=500)。
第二部分:一共T行,每行包括三个整数L,D,R代表路的长,宽和覆盖半径(米)。
(1<=L<=100000),(1<=D<=50),(1<=R<=200)。
Output
对于每组测试数据输出各占一行,只有一个整数,表示最少的路由器数量。
如果不能覆盖,请输出impossible
Sample Input
2
40 6 5
40 10 5
Sample Output
5
impossible
Hint
这道题卡人最多了,最终没有一个人过。T T。有俩AC是系统保留。
我们A完第一题就开始做这个了,小盆友把公式神马的都想好了,我没怎么看,开始按公式敲。WA,WA,WA。我回去看题,觉得公式没啥问题。就是那个距离不能小于一米的判断可能有点问题,后来考虑进去后,依旧WA,无奈先放放,看模拟题三题了。
后来对这题不死心,可是一直不知道哪里出错。哎。
很水的模拟题啊。算是。关键测试数据弄成高精度的了,而我判断用的0.000001,结果精度没有测试数据的高,就WA了。教训。哎。
刚才重写的时候学会两个函数。以前没用过。
double ceil(double x)返回不小于x 的最小整数
double floor(double x)返回不大于x 的最大整数
view plaincopy to clipboardprint?
#include
<stdio.h>
#include
<stdlib.h>
#include
<iostream>
#include
<string.h>
#include
<math.h>
using namespace std;
int main(void)
{
double
len,r,wid;
int
ncases;
scanf("%d",&ncases
);
while(
ncases-- )
{
scanf("%lf%lf%lf",&len,&wid,&r);
double x = sqrt( 4*r*r - wid*wid
);
if( x < 1.0 || wid >= 2*r
)
{
printf("impossible\n");
continue;
}
double num = len/x;
double nn = floor(num); //
e...
if( nn < num
)
printf("%d\n",nn+1);
else
printf("%d\n",nn);
}
return 0;
}
TimeLimit: 1000MS MemoryLimit: 32768 Kb
Description
我们的乐乐同学对于网络可算得上是情有独钟,他有一个计划,那就是用无线网覆盖郑州大学。
现在学校给了他一个机会,因此他要购买很多的无线路由。现在他正在部署某条大道的网络,而学校只允许把他的无线路由器放在路的正中间。我们默认这条大道是笔直的并且它在任何地方的宽度都一样。并且所有的路由器的覆盖面积是相同的。现在乐乐计算出这条大道的长和宽,以及路由器的覆盖半径,想起你帮忙帮他计算出他最少要购买的路由器的数量。
注意:为了防止某种干扰,两台无限路由之间的最小距离不能小于1米。
图1中为一条矩形的道路,中间的虚线代表中线。图2为最小覆盖的示意图。
Input
输入包括多组测试数据:
第一部分:一个整数T(1<=T<=500)。
第二部分:一共T行,每行包括三个整数L,D,R代表路的长,宽和覆盖半径(米)。
(1<=L<=100000),(1<=D<=50),(1<=R<=200)。
Output
对于每组测试数据输出各占一行,只有一个整数,表示最少的路由器数量。
如果不能覆盖,请输出impossible
Sample Input
2
40 6 5
40 10 5
Sample Output
5
impossible
Hint
这道题卡人最多了,最终没有一个人过。T T。有俩AC是系统保留。
我们A完第一题就开始做这个了,小盆友把公式神马的都想好了,我没怎么看,开始按公式敲。WA,WA,WA。我回去看题,觉得公式没啥问题。就是那个距离不能小于一米的判断可能有点问题,后来考虑进去后,依旧WA,无奈先放放,看模拟题三题了。
后来对这题不死心,可是一直不知道哪里出错。哎。
很水的模拟题啊。算是。关键测试数据弄成高精度的了,而我判断用的0.000001,结果精度没有测试数据的高,就WA了。教训。哎。
刚才重写的时候学会两个函数。以前没用过。
double ceil(double x)返回不小于x 的最小整数
double floor(double x)返回不大于x 的最大整数
view plaincopy to clipboardprint?
#include
<stdio.h>
#include
<stdlib.h>
#include
<iostream>
#include
<string.h>
#include
<math.h>
using namespace std;
int main(void)
{
double
len,r,wid;
int
ncases;
scanf("%d",&ncases
);
while(
ncases-- )
{
scanf("%lf%lf%lf",&len,&wid,&r);
double x = sqrt( 4*r*r - wid*wid
);
if( x < 1.0 || wid >= 2*r
)
{
printf("impossible\n");
continue;
}
double num = len/x;
double nn = floor(num); //
e...
if( nn < num
)
printf("%d\n",nn+1);
else
printf("%d\n",nn);
}
return 0;
}
相关文章推荐
- ThinkPad&nbsp;x61&nbsp;slk12.2&nbsp;无线网络问…
- 转载&nbsp;浏览器的工作原理:新式网络…
- 【安卓开机动画】火爆网络 Su…
- 网络收音机TuneIn Radio&nbsp…
- ubuntu14 命令行连接无线网络方法
- WebQuest(网络探究)学习 模式
- 网络收音机TuneIn Radio&nbsp…
- debian 安装无线网卡驱动
- 计算机网络常用的 dos 命令
- android网络通讯数据封装之&nbsp;json
- kail 无线破解教程 预告
- 网络收音机TuneIn Radio&nbsp…
- poj&nbsp;2112&nbsp;网络流
- ubuntu上网络安装texlive&nbsp;2012
- 【openwrt新手】 uci 设置网络命令
- 无线网络安全讨论-wep&wpa&wpa2
- 网络收音机TuneIn Radio&nbsp…
- php&nbsp;&nbsp;网络测试环境搭建
- CenterOS&nbsp;x86_64下的无线驱动安装…
- Linux系统&nbsp;阻塞socket遇到网络故障