题目描述

随着智能手机的日益普及,人们对无线网的需求日益增大。某城市决定对城市内的公共场所覆盖无线网。

假设该城市的布局为由严格平行的 \(129\) 条东西向街道和 \(129\) 条南北向街道所形成的网格状,并且相邻的平行街道之间的距离都是恒定值$ 1$。东西向街道从北到南依次编号为 \(0,1,2...128\)和\(0,1,2…128\),南北向街道从西到东依次编号为$ 0,1,2…128$。

东西向街道和南北向街道相交形成路口,规定编号为 \(x\) 的南北向街道和编号为 \(y\) 的东西向街道形成的路口的坐标是$ (x, y)$。在某些路口存在一定数量的公共场所。

由于政府财政问题,只能安装一个大型无线网络发射器。该无线网络发射器的传播范围是一个以该点为中心,边长为 $2d $的正方形。传播范围包括正方形边界。

现在政府有关部门准备安装一个传播参数为 $d $的无线网络发射器,希望你帮助他们在城市内找出合适的路口作为安装地点,使得覆盖的公共场所最多。

输入格式

第一行包含一个整数$ d$,表示无线网络发射器的传播距离。

第二行包含一个整数 \(n\),表示有公共场所的路口数目。

接下来 n 行,每行给出三个整数$ x, y, k,\(中间用一个空格隔开,分别代表路口的坐标\) (x, y)$ 以及该路口公共场所的数量。同一坐标只会给出一次。

输出格式

输出一行,包含两个整数,用一个空格隔开,分别表示能覆盖最多公共场所的安装地点方案数,以及能覆盖的最多公共场所的数量。

输入输出样例

输入 #1 复制

1

2

4 4 10

6 6 20

输出 #1 复制

1 30

说明/提示

对于\(100%\)的数据,\(1 \leq d \leq 20, 1 \leq n \leq 20,0 \leq x \leq 128 , 0 \leq y \leq 128 , 0 < k \leq 1000000,1≤d≤20,1≤n≤20,0≤x≤128,0≤y≤128,0<k≤1000000\)

解析:

一道简单的模拟题。

因为是\(129 \times 129\)的方阵,所以我们可以枚举每一个点

然后以该点为中心开始对四周可以扫到的点累加和

我们开了两个变量来记录,

\(num\)记录最大值的个数,\(ans\)记录最大值,

有一个显然的结论就是

我们更换最大值的时候就可以把num替换为1

与此值相同或者更大的数一定会在后面。

感性理解。

#include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
#include <vector>
#include <set>
#define re register
#define Max 130
int n,ans = 0,d,g[Max][Max],num;
inline void init() {
scanf("%d%d",&d,&n);int x,y,k;
for(re int i = 1 ; i <= n ; ++ i)
scanf("%d%d%d",&x,&y,&k),g[x][y] = k;
}
void work() {
int max_place;
for(re int i = 0 ; i <= 128 ; ++ i)
for(re int j = 0 ; j <= 128 ; ++ j) {
max_place = 0;
for(re int a = -d ; a <= d ; ++ a)
for(re int b = -d ; b <= d ; ++ b)
if(a + i >= 0 && a + i <= 128 && b + j <= 128 && b + j >= 0)//判断边界情况
max_place += g[a+i][b+j];
if(max_place == ans) num++;
if(max_place > ans) ans = max_place, num = 1;
}
}
inline void print() {printf("%d %d",num,ans);}
int main() {
init();
work();
print();
return 0;
}

洛谷P2038 无线网络发射器选址的更多相关文章

  1. [NOIP2014] 提高组 洛谷P2038 无线网络发射器选址

    题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129 条东西向街道和129 条南北向街道所形成的网格状,并且相邻 ...

  2. 洛谷 P2038 无线网络发射器选址

    题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129 条东西向街道和129 条南北向街道所形成的网格状,并且相邻 ...

  3. 洛谷——P2038 无线网络发射器选址

    https://www.luogu.org/problem/show?pid=2038 题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城 ...

  4. 洛谷 P2038 无线网络发射器选址 —— 二维树状数组

    题目:https://www.luogu.org/problemnew/show/P2038 大水题暴露出我的愚蠢. 用二维树状数组,然而居然忘了它应该那样写,调了一个小时: 正方形可以超出外面,只要 ...

  5. 洛谷P2038 无线网络发射器选址 水题 枚举

    刚开始边界写错了(将128写成127). 注意n <= 20,所以可以每读入一个点就将其周边更新,这样最多也只会有 40 * 40 * 20 种位置需要被枚举. Code: #include&l ...

  6. 洛谷 P2038 无线网络发射器选址 题解

    每日一题 day9 打卡 Analysis 这道题是个模拟,两个0~128( 注意不是1~128 )的循环枚举正方形中心点,判断正方形的边界,再用循环枚举公共场所的数量就好了. 时间复杂度 < ...

  7. P2038 无线网络发射器选址

    题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129 条东西向街道和129 条南北向街道所形成的网格状,并且相邻 ...

  8. NOIP2014 无线网络发射器选址

    1.无线网络发射器选址 (wireless.cpp/c/pas) [问题描述] 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平 ...

  9. NOIP2014_day2:无线网络发射器选址

    #include<stdio.h>//NOIP2014 day2 :无线网络发射器选址 ,max=; ][]; void wifi(int a,int b,int c) { int i,j ...

随机推荐

  1. Kafka学习笔记之Kafka自身操作日志的清理方法(非Topic数据)

    0x00 概述 本文主要讲Kafka自身操作日志的清理方法(非Topic数据),Topic数据自己有对应的删除策略,请看这里. Kafka长时间运行过程中,在kafka/logs目录下产生了大量的ka ...

  2. kafka broker Leader -1引起spark Streaming不能消费的故障解决方法

    一.问题描述:Kafka生产集群中有一台机器cdh-003由于物理故障原因挂掉了,并且系统起不来了,使得线上的spark Streaming实时任务不能正常消费,重启实时任务都不行.查看kafka t ...

  3. drf之接口规范

    web接口 # 请求工具:postman => https://www.getpostman.com/ # 接口:url链接,通过向链接发生不同的类型请求与数据得到相应的响应数据 # http: ...

  4. angularJS中select元素的应用浅析

    select array 数据: select ng-model 用法: 1.可以是一个对象形式,ng-model="test" $scope.test = {name: &quo ...

  5. Workerman MySQL组件Connection用法总结

    一.初始化连接 $db = new \Workerman\MySQL\Connection('host', 'port', 'user', 'password', 'db_name'); 二.获取所有 ...

  6. Cheat Engine 人造指针

    打开游戏 查看内存区域 查看游戏当前使用的内存区域 下面这一段是游戏当前使用的内存区域,选择一片可以读写的内存区域 跳转到这片内存 查看是否有空余内存可以使用 使用空闲内存 我们选择0075DFD0开 ...

  7. Git拉取Gitlab上的代码时,报128的解决方法

    今天拉取gitlab上的代码时出现错误,一直返回128 首先我们确定我们在存储库上有没有权限,然后我就去项目中的 Members上看是否有权限,然后发现也是有的. 然后克隆的时候发现输入一万遍密码都还 ...

  8. centos7 升级最新版内核 并安装 bcc-tools

    centos7 升级最新版内核 升级系统 [root@jikeshijian ~]# yum update -y 安装 ELRepo [root@jikeshijian ~]# rpm --impor ...

  9. mklink 文件夹链接 windows系统

    MS文档 https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mklink 命令参数 mkl ...

  10. splunk dga

    https://splunkbase.splunk.com/app/3559/ 详细参考: https://www.slideshare.net/Splunk/using-machine-learni ...