`
niyayu
  • 浏览: 34156 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

基站问题

 
阅读更多

从前有一个一望无际的海滩,海滩后面是陆地,前面是广阔的大海。海中有很多小岛(可以用一个点表示)。现在海滩上需要安装一些基站(海滩上的任意位置)这样岛上的居民就能用手机通话了,所有的基站的覆盖距离都是d,在距离d范围内的小岛都能收到基站发送的信号。

我们用笛卡尔坐标系来表示这个问题,定义x轴为海滩,x轴上方是大海,下方是陆地。现给出每个小岛的位置(用x-y坐标表示)和基站的覆盖范围d,你的任务就是写一个程序,计算出可以覆盖所有的小岛,至少需要在海滩上安装多少基站?

Input

输入包含多组数据。对每组数据,第一行包含两个整数n(1 <= n <= 1000)和d,n代表小岛数量,d代表基站的覆盖距离。接下来有n行,每行包含两个整数,表示小岛的位置坐标。输入n=0,d=0时退出。

Output

对每组数据,输出包含数据组数,格式如sample,后跟最少需要安装的基站数,如果无解,输出-1。

Sample Input

3 2

1 2

-3 1

2 1

1 2

0 2

1 -2

0 2

0 0

Sample Output

Case 1: 2

Case 2: 1

Case 3: -1







#include<iostream>
#include<algorithm>
#include<math.h>

using namespace std;

#define MAX 1001

struct stuPoint
{
int x;
int y;
};

struct stuLimit
{
double dFrom;
double dTo;
};

stuPoint stuIsland[MAX];
stuLimit stuDuan[MAX];

void vInput(int nN);
bool check(int nN,int nD);
void vSort(int nN);
bool bCmp(const stuLimit &stuA,const stuLimit &stuB);
void vPutOut(int nRet,int Case);
int nGetAns(int nN);

int main()
{
int nIslands,nDistance;
int ans;
int nCase;

nCase=1;
while(2==scanf("%d%d",&nIslands,&nDistance))
{
vInput(nIslands);
if((0==nIslands)&&(0==nDistance))
return 0;
if(check(nIslands,nDistance))
{
vSort(nIslands);
ans=nGetAns(nIslands);
}
else
ans=-1;

vPutOut(ans,nCase);
nCase++;
}

return 0;
}

void vInput(int nN)
{
int i;

for(i=1;i<=nN;i++)
{
scanf("%d%d",&stuIsland[i].x,&stuIsland[i].y);
}

}

bool check(int nN,int nD)
{
int i;

for(i=1;i<=nN;i++)
{
if(stuIsland[i].y>nD)
return false;
stuDuan[i].dFrom=stuIsland[i].x-sqrt(1.0*nD*nD-1.0*stuIsland[i].y*stuIsland[i].y);
stuDuan[i].dTo=stuIsland[i].x+sqrt(1.0*nD*nD-1.0*stuIsland[i].y*stuIsland[i].y);
}
return true;
}

void vSort(int nN)
{
sort(&stuDuan[1],&stuDuan[nN+1],bCmp);
}

bool bCmp(const stuLimit &stuA,const stuLimit &stuB)
{
return(stuA.dFrom<stuB.dFrom);
}

void vPutOut(int nRet,int Case)
{
printf("Case %d: %d\n",Case,nRet);
}

int nGetAns(int nN)
{
int i;
int ans;
int nTemp;

ans=1;
nTemp=stuDuan[1].dTo;
for(i=2;i<=nN;i++)
{

if(nTemp<stuDuan[i].dFrom)
{
nTemp=stuDuan[i].dTo;
ans++;
}
else
{
if(nTemp>stuDuan[i].dTo)
{
nTemp=stuDuan[i].dTo;
}
}

}
return ans;
}
分享到:
评论

相关推荐

    4G伪基站问题及影响分析.docx

    4G伪基站问题及影响分析.docx

    免费全国移动联通电信基站数据库,基站查询

    3. **故障定位与排除**:当用户报告通信问题时,基站数据库可迅速定位问题基站,快速排查故障,缩短修复时间。 4. **信号覆盖分析**:对基站覆盖范围进行分析,能帮助评估信号强度和干扰情况,为用户提供更好的通话...

    GetPlan.zip_基站 matlab_基站 最优_选址_选址MATLAB_选址问题 matlab

    这是一个用MATLAB编程来解决小区基站最优化选址问题的程序,有一定的实用性。

    移动联通电信基站数据库,基站查询

    2. **故障排查**:当用户投诉信号问题时,可以通过查询数据库定位问题基站,进行故障诊断和修复。 3. **容量管理**:根据话务量数据调整基站参数,以应对高峰期的通信需求。 4. **干扰检测**:对比数据库中的信息...

    华为LTE基站告警故障处理.pdf

    文档提到了LMT(Local Maintenance Terminal)和OMC(Operation and Maintenance Center),这些都是华为提供的基站维护和管理系统,用于远程监控、诊断和修复基站问题。 5. **接口和协议**: X2接口是相邻站点...

    基站仿真.zip_仿真基站_基站仿真模拟_基站动态_基站模块通信仿真_基站模拟软件

    基站仿真是通信工程领域中的一个重要研究方向,它主要用于模拟实际...这份资料为学习和研究通信系统仿真的人员提供了一套完整的工具和理论框架,有助于深入理解通信网络的运行机制,并进行高效的问题排查和性能优化。

    通信行业省会运维中心基站维护班机务员岗位说明书.doc

    - **内部协调**:需要与其他班组协调,如传输组、电力组,共同解决基站问题。 - **外部协调**:与公司内外的相关维护人员保持良好沟通,共同处理跨部门的问题。 3. **任职资格**: - **教育背景**:中专及以上...

    手机基站定向基站数据库

    9. **维护历史**:包括基站的维修记录、升级情况、故障信息,便于问题诊断和预防性维护。 10. **环境因素**:如地形、建筑遮挡等,这些都会影响信号传播,数据库中可能记录这些信息以优化基站布局。 最新的基地...

    PSOzip_基站覆盖优化_基站_PSO基站_PSO_区域覆盖_

    标题中的"PSOzip_基站覆盖优化_基站_PSO基站_PSO_区域覆盖_"暗示我们正在探讨一种基于粒子群优化(PSO,Particle Swarm Optimization)算法解决基站覆盖问题的方法。本文将深入解析PSO算法以及其在基站覆盖优化中的...

    基站常见问题

    ### 基站常见问题解析 #### 一、移动通信基站基础知识 移动通信基站作为现代通信基础设施的关键组成部分,承担着连接移动终端与整个通信网络的重要角色。随着技术的进步和社会需求的变化,基站的设计与运维也在...

    -移动通信基站网络覆盖问题.docx

    ### 移动通信基站网络覆盖问题 #### 一、引言 随着人均生活水平的提高和社会信息化进程的加快,人们对移动通信技术的需求日益增长。移动通信基站作为无线通信的基础设施,其网络覆盖问题成为了研究的热点之一。...

    离线基站数据库

    可以了解到2014年中国三大主要运营商的基站部署情况,包括基站数量、分布状况、网络能力等,这对于研究当时中国的通信网络发展、预测未来趋势以及解决信号问题具有很高的参考价值。同时,这个数据包可以作为GIS应用...

    移动通信基站搬迁及拆除流程.doc

    未执行本办法导致的基站中断 ,或是基站安全、运行问题引起的损失由责任部门承担。 第三章 职责 第三条 各部门职责划分 1.网络部职责: 1)、网络部为基站搬迁的职能主管部门。 2)、负责再次核实所申请搬迁及拆除...

    5G网络优化案例:EPS FB语音cause34质差小区判断方法和闭环规则.docx

    - **主叫**:由于基站问题,主叫触发自动回落的救援流程,返回4G发送第二个invite进行VoLTE通话。 - **被叫**:基站指示进行VONR通话,但由于关闭了VONR功能,导致未接通。 在综合单据MOC与MTC中查询测试号码的话单...

    KML基站图层制作工具

    网络优化工具,如KML基站图层制作工具,帮助工程师们快速定位问题,分析信号覆盖盲区,规划新的基站位置,以及调整现有基站的参数,从而提高网络的整体性能。 【KML生成查看工具】的V1.5绿色版是一个便携式的应用,...

    基站转经纬

    2. **故障排查**:当出现通信问题时,可以根据基站位置快速定位到现场进行检修。 3. **地理位置服务**:基于基站位置提供的地理位置服务,如导航、定位等功能,为用户提供更加准确的服务体验。 4. **地图标注**:在...

    android 基站定位程序

    在Android平台上,基站定位是一种基于移动通信网络的定位...通过集成Android系统提供的API,开发者可以创建自己的基站定位应用,但要注意不同运营商的兼容性问题。提供的压缩包和PDF文档为学习和实践提供了宝贵资源。

    博立基站BL-62 USB驱动

    博立基站BL-62 USB驱动是专为博立通信技术有限公司生产的基站设备设计的一款重要软件组件。在无线通信领域,基站是连接移动设备与网络的核心设施,而USB驱动则是确保计算机能够正确识别并有效通信的关键接口。这篇...

    基站铁塔智能门禁电控锁方案.pdf

    为了解决这些问题,提出了基站铁塔智能门禁电控锁方案,旨在通过智能化的手段提升基站的管理水平,确保通信网络的高效稳定运行。 现状与需求分析 当前基站的管理现状具有以下特点:大部分基站无人值守,日常维护...

    统计移动运营商用户基站数据

    6. **故障检测**:如果大量用户突然无法连接到某个基站,可能意味着基站出现故障,及时的统计分析可以快速定位问题。 7. **业务优化**:基于基站数据,运营商可分析不同业务(如语音、数据)的使用情况,为新业务...

Global site tag (gtag.js) - Google Analytics