7213:垃圾炸弹 ②
描述
2018年俄罗斯世界杯(2018 FIFA World Cup)开踢啦!为了方便球迷观看比赛,莫斯科街道上很多路口都放置了的直播大屏幕,但是人群散去后总会在这些路口留下一堆垃圾。为此俄罗斯政府决定动用一种最新发明——“垃圾炸弹”。这种“炸弹”利用最先进的量子物理技术,爆炸后产生的冲击波可以完全清除波及范围内的所有垃圾,并且不会产生任何其他不良影响。炸弹爆炸后冲击波是以正方形方式扩散的,炸弹威力(扩散距离)以d给出,表示可以传播d条街道。
例如下图是一个d=1的“垃圾炸弹”爆炸后的波及范围。
假设莫斯科的布局为严格的1025*1025的网格状,由于财政问题市政府只买得起一枚“垃圾炸弹”,希望你帮他们找到合适的投放地点,使得一次清除的垃圾总量最多(假设垃圾数量可以用一个非负整数表示,并且除设置大屏幕的路口以外的地点没有垃圾)。
输入
第一行给出“炸弹”威力d(1 <= d <= 50)。第二行给出一个数组n(1 <= n <= 20)表示设置了大屏幕(有垃圾)的路口数目。接下来n行每行给出三个数字x, y, i, 分别代表路口的坐标(x, y)以及垃圾数量i. 点坐标(x, y)保证是有效的(区间在0到1024之间),同一坐标只会给出一次。
输出
输出能清理垃圾最多的投放点数目,以及能够清除的垃圾总量。
样例输入
1
2
4 4 10
6 6 20
样例输出
1 30
解析
以垃圾为中心解题,因为炸弹是有范围的,如果垃圾坐标为 [x,y],那么坐标在 [x-d,x+d],[y-d,y+d] 范围内任意位置放炸弹都会生效,直接给这些坐标赋值,将值加起来,和即为清除的垃圾总数
代码
#include <iostream>
using namespace std;
int map[1030][1030];
void addd(int x, int y, int num) {//添加值if (x < 1025 && x >= 0 && y < 1025 && y >= 0) {map[x][y] += num;}
}
void fw(int x, int y, int num, int d) {//废物范围for (int i = x - d; i <= x + d; i++) {for (int j = y - d; j <= y + d; j++) {addd(i, j, num);}}
}int main() {int d, n;cin >> d >> n;for (int i = 0; i < n; i++) {int x, y, num;cin >> x >> y >> num;fw(x, y, num, d);}int amount = 1, gross = 0;for (int i = 0; i < 1025; i++) {for (int j = 0; j < 1025; j++) {if (map[i][j] > gross) {gross = map[i][j];amount = 1;} else if (map[i][j] == gross) {amount++;}}}cout << amount << " " << gross;
}
NOI / 2.1基本算法之枚举
7213:垃圾炸弹 ②相关推荐
- NOI:7213 垃圾炸弹
题目链接:http://noi.openjudge.cn/ch0201/7213/ 转载:https://blog.csdn.net/qq_33193309/article/details/77161 ...
- NOI / 2.1基本算法之枚举 7213:垃圾炸弹
描述 2018年俄罗斯世界杯(2018 FIFA World Cup)开踢啦!为了方便球迷观看比赛,莫斯科街道上很多路口都放置了的直播大屏幕,但是人群散去后总会在这些路口留下一堆垃圾.为此俄罗斯政府决 ...
- Bailian4133 垃圾炸弹【枚举】
4133:垃圾炸弹 总时间限制: 1000ms 内存限制: 65536kB 描述 2018年俄罗斯世界杯(2018 FIFA World Cup)开踢啦!为了方便球迷观看比赛,莫斯科街道上很多路口都放 ...
- 百练4133:垃圾炸弹
http://bailian.openjudge.cn/practice/4133/ 总时间限制: 1000ms 内存限制: 65536kB 描述 2014年巴西世界杯(2014 FIFA Wor ...
- 机试NOI:基本算法
NOI 1.11-2.5 基本算法学习,不断更新ing 1.11 编程基础之二分查找 NOI:7940 最接近的元素(经典二分法思想):https://blog.csdn.net/wuzhenzi51 ...
- 黑客攻学兼防(固顶)
序章:开始学习黑客之前. 第一节.黑客的种类和行为 以我的理解,"黑客"大体上应该分为"正"."邪"两类,正派黑客依靠自己掌握的知识 ...
- 最经典的黑客技术入门知识大全
第一节.什么是黑客 以我的理解,"黑客"大体上应该分为"正"."邪"两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善 ...
- 最经典的黑客入门教程
第一节.黑客的种类和行为 以我的理解,"黑客"大体上应该分为"正"."邪"两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加 ...
- 黑客完全修炼手册(收藏)
第一节.黑客的种类和行为 以我的理解,"黑客"大体上应该分为"正"."邪"两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加 ...
最新文章
- linux 网络通讯 命令,Linux—网络通讯管理命令
- echo off备份mysql_windows下备份Linux服务器上的MySQL
- 【转】Azure DevOps —— Azure Board 之 长篇故事、特性、用户情景(故事)的用法应用场景
- JavaTutorialNetwork 中文系列教程 · 翻译完成
- Language Understanding for TextGames using Deep Reinforcement
- 64行代码实现简单人脸识别
- 8张图学习大型网站技术架构(转)
- Ubuntu下无法启动wifi
- springboot no tests were found
- 2022/12/11创建openai账号(chatgpt)
- ZedBoard教程PL篇(2):按键检测
- JConsole:Java监视与管理控制台
- OpenBox:高效通用的黑盒优化系统
- Java计算标会(会子)利率
- 本地maven archetype 骨架使用
- Unity使用C#网络下载用户头像
- JavaScript奇淫技巧:反调试
- Java JDK 下载安装,以及环境配置
- ActiveSync Startup Server
- vivox50支持鸿蒙,vivox50有没有红外线功能_vivox50红外传感器怎么开启