蓝桥杯省赛模拟题 信号覆盖

2023-11-02

题目大意

小蓝负责一块区域的信号塔安装,整块区域是一个长方形区域,建立坐标轴后,西南角坐标为 ( 0 , 0 ) (0,0) (0,0) , 东南角坐标为 ( W , 0 ) (W,0) (W,0) , 西北角坐标为 ( 0 , H ) (0,H) (0,H) , 东北角坐标为 ( W , H ) (W,H) (W,H) 。其中 W , H W, H W,H 都是整数。他在 n n n 个位置设置了信号塔,每个信号塔可以覆盖以自己为圆心,半径为 R R R 的圆形(包括边缘)。

为了对信号覆盖的情况进行检查,小蓝打算在区域内的所有横纵坐标为整数的点进行测试,检查信号状态。其中横坐标范围为 0 0 0 W W W ,纵坐标范围为 0 0 0 H H H ,总共测试 ( W + 1 ) × ( H + 1 ) (W+1)×(H+1) (W+1)×(H+1) 个点。

给定信号塔的位置,请问这 ( W + 1 ) × ( H + 1 ) (W+1)×(H+1) (W+1)×(H+1) 个点中有多少个点被信号覆盖。

输入第一行包含四个整数 W , H , n , R W,H,n,R W,H,n,R ,相邻整数之间使用一个空格分隔。

接下来 n n n 行,每行包含两个整数 x , y x,y x,y ,表示一个信号塔的坐标。信号塔可能重合,表示两个信号发射器装在了同一个位置。

输出一行包含一个整数,表示答案。

对于所有评测用例, 1 ≤ W , H ≤ 100 , 1 ≤ n ≤ 100 , 1 ≤ R ≤ 100 , 0 ≤ x ≤ W , 0 ≤ y ≤ H 1 ≤ W, H ≤ 100, 1 ≤ n ≤ 100, 1 ≤ R ≤ 100 , 0 ≤ x ≤ W , 0 ≤ y ≤ H 1W,H100,1n100,1R100,0xW,0yH

解题思路

数据范围较小,可以暴力枚举所有的点是否被覆盖,一个点是否被信号覆盖可以枚举所有的信号塔。
若有圆 C C C ,圆心为 ( a , b ) (a, b) (a,b) ,半径为 r r r ,则该圆的公式为:
( x − a ) 2 + ( y − b ) 2 = r 2 (x - a)^2 + (y - b)^2 = r^2 (xa)2+(yb)2=r2
根据数学知识可知,将一个点的横纵坐标带入上式

  1. ( x − a ) 2 + ( y − b ) 2 > r 2 (x - a)^2 + (y - b)^2 > r^2 (xa)2+(yb)2>r2 则该点在圆 C C C
  2. ( x − a ) 2 + ( y − b ) 2 = r 2 (x - a)^2 + (y - b)^2 = r^2 (xa)2+(yb)2=r2 则该点在圆 C C C
  3. ( x − a ) 2 + ( y − b ) 2 < r 2 (x - a)^2 + (y - b)^2 < r^2 (xa)2+(yb)2<r2 则该点在圆 C C C

AC_Code

  • C++
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>

using namespace std;

const int N = 1e2 + 10;

int w, h, n, r;
int X[N], Y[N];

bool check(int x, int y)
{
    for (int i = 0; i < n; ++ i )
    {
        int tx = x - X[i], ty = y - Y[i];
        tx *= tx, ty *= ty;
        if (tx + ty <= r * r)
            return true;
    }
    return false;
}

int main()
{
    cin >> w >> h >> n >> r;
    for (int i = 0; i < n; ++ i )
        cin >> X[i] >> Y[i];
    
    int res = 0;
    for (int i = 0; i <= w; ++ i )
        for (int j = 0; j <= h; ++ j )
            res += check(i, j);
    cout << res << endl;
    
    return 0;
}
  • Java
import java.util.Scanner;

public class main {
	
	static int w, h, n, r;
	static int[] X = new int[110];
	static int[] Y = new int[110];
	static boolean check(int x, int y)
	{
	    for (int i = 0; i < n; ++ i )
	    {
	        int tx = x - X[i], ty = y - Y[i];
	        tx *= tx;
	        ty *= ty;
	        if (tx + ty <= r * r)
	            return true;
	    }
	    return false;
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		w = sc.nextInt();
		h = sc.nextInt();
		n = sc.nextInt();
		r = sc.nextInt();
		for (int i = 0; i < n; ++ i ) {
			X[i] = sc.nextInt();
			Y[i] = sc.nextInt(); 
		}
		
		int res = 0;
		for (int i = 0; i <= w; ++ i )
	        for (int j = 0; j <= h; ++ j )
	        	if (check(i, j))
	        		res ++;
		System.out.println(res);
	}
	
}
  • Python
def check(x, y):
    for i in range(n):
        tx = x - X[i]
        ty = y - Y[i]
        if tx * tx + ty * ty <= r * r:
            return True
    return False

X = []
Y = []
w, h, n, r = map(int, input().split())
for i in range(n):
    a, b = map(int, input().split())
    X.append(a)
    Y.append(b)

res = 0
for i in range(w + 1):
    for j in range(h + 1):
        res += check(i, j)
print(res)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯省赛模拟题 信号覆盖 的相关文章

随机推荐

  • Springboot调整接口响应返回时长(解决响应超时问题)

    Springboot调整接口 会话响应返回时长 解决响应超时问题 配置Http会话超时 可以通过两种方式为Spring Boot应用程序配置HTTP会话超时 application properties中配置会话超时 最简单的方法是在你的a
  • 在互联网上,没有人知道你是一条狗?

    1993 年 纽约客 The New Yorker 杂志刊登一则由彼得 施泰纳 Peter Steiner 创作的漫画 标题是 On the Internet nobody knows you re a dog 这则漫画中有两只狗 一只黑狗
  • 【C语言】通讯录实现以及信息保存至文件。

    实现一个通讯录 通讯录用来存放1000个人的信息 每个人的信息包括 姓名 性别 年龄 电话 住址 提供方法 1 添加联系人信息 2 删除指定联系人信息 3 查找指定联系人的信息 4 修改指定联系人信息 5 显示所有联系人信息 6 清空所有联
  • c++内存分区模型

    程序在运行的过程中是会被加载到内存中的 一个程序可能会执行可能会存在不同的功能块 所以不同区域存放的数据 赋予不同的生命周期 给我们更大的灵活编程 C 的程序会在内存中分为四大块 代码区 存放函数体的二进制代码 由操作系统进行管理的 全局区
  • vue在created调用点击方法_vue.js中created方法的使用详解

    这次给大家带来vue js中created方法的使用详解 使用vue js中created方法的注意事项有哪些 下面就是实战案例 一起来看一下 这是它的一个生命周期钩子函数 就是一个vue实例被生成后调用这个函数 一个vue实例被生成后还要
  • 什么是公有IP地址?什么是私有IP地址?及各自范围介绍

    什么是公有IP地址 公网IP 组建一个企业级网络 需要去向 电信运营商ISP 申请一个接入Internet的宽带 同时ISP还会给我们分配一个或多个IP地址 这些IP地址可以供我们企业内部上网 这些ISP分配给我们的IP 就是公有IP 公有
  • 柯里化的两种实现方式(定参和不定参)

    1 函数柯里化简介 函数柯里化是指把接收多个参数的函数转换为接受单一参数的函数 并返回接收剩下参数的新函数的技术 通俗点说 就是将多元函数转化为多个单元函数的连续定义 这里的元代指参数 也就说函数柯里化可以把f a b c 这样的多参的函数
  • Freebsd系统ssh登陆配置

    FreeBSD SSH配置详解 默认情况下freebsd下的ssh服务是未被开启的 需要 首先vi编辑 etc inetd conf 去掉ssh前的 保存退出 开启 ssh服务 修改freebsd可以用sshd权限用户登录ssh 但不能用r
  • JPA学习笔记 - 关联关系

    OneToMany 指定 1对多 的映射关系 可通过fetch的属性设置加载方式 JoinColmn 指定外键的列名 外键存在于 多 的一方表中 单向 n 1 先保存n的一端时 会多出update语句 因为插入n端时并未知道外键的值 插入1
  • java8 新特性stream流学习

    简介 java 8 API添加了一个新的抽象称为流Stream 可以让你以一种声明的方式处理数据 Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象 Stream API可以
  • 离散数学-二元关系

    目录 序偶与有序n元组 集合的笛卡尔积 关系的基本概念 关系的表示方法 特殊关系 关系的性质 自反性 反自反性 对称性 反对称性 传递性 关系的复合运算 1 基本概念 2 计算方法 2 1 有向图法 2 2 枚举法 2 3 谓词公式法 3
  • 微信小程序实现文字随机颜色

    1 实现效果 2 实现思路 从颜色列表中随机取一个颜色 赋值给数组的每一项 Math floor Math random colorArr length 3 实现代码
  • python爬虫需要哪些基础知识-【PYTHON】【爬虫】关于python爬虫的一些基础知识

    基础知识 HTTP协议 我们浏览网页的浏览器和手机应用客户端与服务器通信几乎都是基于HTTP协议 而爬虫可以看作是一个另类的客户端 它把自己伪装成浏览器或者手机应用客户端 按照自己的逻辑贪婪的向服务器索取数据 如何向服务器索取数据 所以了解
  • android开启安装权限管理,Android6.0权限——安装时默认开启app全部权限

    1 默认开启app全部权限 Android6 0之后推出动态申请权限 所有敏感权限默认都是没有开启的状态 这两天偶然间看到其他app安装后所有权限 包括敏感权限 默认都是开启的状态 6 0之后敏感权限都需要申请的 怎么可能跨过用户的 好奇心
  • 5种常用格式的数据输出,手把手教你用Pandas实现

    导读 任何原始格式的数据载入DataFrame后 都可以使用类似DataFrame to csv 的方法输出到相应格式的文件或者目标系统里 本文将介绍一些常用的数据输出目标格式 01 CSV DataFrame to csv方法可以将Dat
  • webcomponents安装了没有用_Web Components基本概念及实例教程

    谷歌公司由于掌握了 Chrome 浏览器 一直在推动浏览器的原生组件 即 Web Components API 相比第三方框架 原生组件简单直接 符合直觉 不用加载任何外部模块 代码量小 目前 它还在不断发展 但已经可用于生产环境 基本概念
  • 如何使用 Javadoc 工具生成文档

    Javadoc 是一个由 Java 语言编写的工具 用于从 Java 代码中提取注释并生成 HTML 格式的文档 以下是使用 Javadoc 工具生成文档的一般步骤 编写代码并添加注释 在你的 Java 代码中添加注释是生成文档的关键 Ja
  • pycharm连接ssh debug卡住 解决方案

    修改dataloder中的worker 修改pycharm setting
  • 2021经典优秀计算机单片机毕业设计题目

    可追溯农产品电商管理系统的设计与实现 农产品用户商城系统设计与实现 基于OpenGL的全局光照算法的设计与实现 分布式存储系统分析与设计 基于机器学习的数据库融合技术研究 基于知识图谱的对话系统设计与实现 具有日志的虚拟WEB攻防系统设计与
  • 蓝桥杯省赛模拟题 信号覆盖

    题目大意 小蓝负责一块区域的信号塔安装 整块区域是一个长方形区域 建立坐标轴后 西南角坐标为 0 0 0 0 0 0 东南角坐标为