热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

POJ1328雷达装置

题目来源:http:poj.orgproblem?id1328解题思路:先讲岛屿按照X坐标,按照升序排列。计算以岛屿为中心,雷达的有效检测范围为半径,计算出与X轴的交点。当左边的岛

//题目来源:http://poj.org/problem?id=1328

  解题思路:

    先讲岛屿按照X坐标,按照升序排列。

    计算以岛屿为中心,雷达的有效检测范围为半径,计算出与X轴的交点。

    当左边的岛屿,与X轴的交点(靠右的那个交点)>它右边那个岛屿与X轴的交点(靠左边那个),那么雷达装置就可以省一个。

    以此类推,就可以计算出所需的雷达数量。  

技术分享技术分享
//POJ1328
//Radar 
//http://poj.org/problem?id=1328
#include
#include
#define SIZE 100

double arr[SIZE][2];

typedef struct intersection{
    double LP;
    double RP;
}Inter;

Inter data[SIZE];

//将岛屿按照坐标X排序(升序 
void Change(int num){
    int r1,r2;
    double tempx,tempy;
    for(r1=0;r1){
        for(r2=r1+1;r2){
            if(arr[r1][0]>arr[r2][0]){
                tempx=arr[r1][0];
                arr[r1][0]=arr[r2][0];
                arr[r2][0]=tempx;
                
                tempy=arr[r1][1];
                arr[r1][1]=arr[r2][1];
                arr[r2][1]=tempy;
            }
        }
    }
}

//计算以(x,y)为圆心,雷达距离为半径所画的圆,与X轴的交点 
void Cal(double x, double y, int radar, int p){
    double temp=sqrt(pow(radar*1.0,2.0)-pow(y,2.0));
    data[p].LP=x-temp;
    data[p].RP=x+temp;
}

//num是岛屿数,radar是雷达的覆盖范围 
int Check(int num, int radar){
    int RadarCount=0,
        r1=0;
    
    for(r1=0;r1){
        Cal(arr[r1][0],arr[r1][1],radar,r1);
    }
    
    int r2;
    for(r1=0;r1<num;){
        RadarCount++;
        //printf("%d\n",temp);
        for(r2=r1+1;r2){
            //printf("r1:%d,r2:%d\n",r1,r2);
            if(data[r1].RP>data[r2].LP);
            else break;
        }
        r1=r2;
    }
    
    /*
    检查计算岛屿与X轴交点的坐标是否正确 
    for(r1=0;r1*/
    
    return RadarCount;
}

int main(void){
    //n是岛屿数,d是雷达的覆盖距离 
    int n,d,r1,r2;
    int result[SIZE],resultcount=0,nothing=0;
    
    while(scanf("%d%d",&n,&d)==2 && n!=0 && d!=0){
        nothing=0;
        for(r1=0;r1){
            scanf("%lf%lf", &arr[r1][0], &arr[r1][1]);
            if(arr[r1][1]>d){
                result[resultcount]=-1;
                nothing=-1;
            }
        }
        //puts("Get!");
        if(nothing!=0) continue;
        
        //for(r1=0;r1//将岛屿按找X坐标排序
        Change(n); 
        //for(r1=0;r1
        result[resultcount]=Check(n,d);
        resultcount++;
    }
    
    for(r1=0;r1"case%d:%d\n",r1+1,result[r1]);
    
    return 0;
}
POJ1328-AC

POJ1328-雷达装置


推荐阅读
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文详细对比了HashMap和HashTable在多线程环境下的安全性、对null值的支持、性能表现以及方法同步等方面的特点,帮助开发者根据具体需求选择合适的数据结构。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
  • LoadRunner中的IP欺骗配置与实践
    为了确保服务器能够有效地区分不同的用户请求,避免多人使用同一IP地址造成的访问限制,可以通过配置IP欺骗来解决这一问题。本文将详细介绍IP欺骗的工作原理及其在LoadRunner中的具体配置步骤。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 本文介绍如何使用 Python 计算两个时间戳之间的时间差,并将其转换为毫秒。示例代码展示了如何通过 `time` 和 `datetime` 模块实现这一功能。 ... [详细]
  • 本文列举了构建和运行 Struts2 应用程序所需的核心 JAR 文件,包括文件上传、日志记录、模板引擎等关键组件。 ... [详细]
  • 本文介绍了一个来自AIZU ONLINE JUDGE平台的问题,即清洁机器人2.0。该问题来源于某次编程竞赛,涉及复杂的算法逻辑与实现技巧。 ... [详细]
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
  • 本文详细介绍了如何使用Rufus工具制作一个兼容UEFI启动模式的Windows Server 2008 R2安装U盘,包括必要的软件和步骤。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 本文详细探讨了在Windows 98环境下安装Apache 1.3.9、JServ、GNUJSP 1.0、JDK 1.2.2及JSDK 2.0后遇到的中文显示问题,并提供了多种有效的解决方案。 ... [详细]
author-avatar
丶希_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有