C++信号塔

此博客介绍了如何解决一个C++编程问题,即在给定一个正方形网格和若干座信号塔的情况下,计算至少被一座信号塔覆盖的房屋数量。输入包含网格大小N、信号塔数量M和覆盖半径R,输出是覆盖的房屋数量。样例给出了一个5x5网格,两座信号塔和覆盖半径为1的情况,解说是8个房屋被覆盖。数据范围限定为N, M ≤ 100,0 ≤ R ≤ 100,且不保证信号塔不重叠。博客还可能包含通过问题的AC代码。" 92745929,8256601,Nginx 命令详解:启动、重启、关闭与平滑升级,"['运维', 'Nginx']

信号塔

题目描述
方舟新城经过多年的建设,终于要投入使用了。方舟新城是一个标准的正方形,确切的说,可以将方舟新城看成是一个NxN的网格,线段横平竖直形成NxN个格点,相邻两个格点间都是1单位长度。下图是一个5x5的情形。
在这里插入图片描述

网格中左下角的坐标为(1, 1),左下角右边的格点坐标为(2,1),左下角上边的格点坐标为(1, 2),依次类推。图中的每一个格点都有1栋房子,NxN的方舟新城共有NxN栋房子。
为了尽快的让每栋房子都能够接入移动网络,联邦移动公司正在加班加点的建设信号塔,信号塔都建设在格点上,每个信号塔覆盖的范围都是一个以信号塔建设位置为原点,半径为R的圆。距离某信号塔不超过R的房子都能被该信号塔所覆盖。目前联邦移动的工作人员已经建设了M座信号塔,联邦移动的工作人员想知道,当前有多少所房子至少被一个信号塔所覆盖。

输入格式

输入文件第一行,3个空格分隔的正数N, M, R。

接下来M行,每行两个整数x, y, 表示一个信号塔的坐标(x, y)

输出格式

输出一行一个整数,表示至少能被一座信号塔覆盖的房子数量。

输入输出样列
输入样例1:
5 2 1
3 3
4 2

输出样例1:
8
说明
【样例说明】
样例中,在一个 5*5 网格区域的格点(3,3)处和格点(4,2)处有信号塔,工作半径都为 1,如下图,有 8 个格点位置(红色点)的房子可以被信号塔覆盖到。
在这里插入图片描述

【数据范围】

对于 40%的数据:N, M ≤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值