NOI / 2.1基本算法之枚举 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之间),同一坐标只会给出一次。
输出
输出能清理垃圾最多的投放点数目,以及能够清除的垃圾总量。
___________________________________分界线___________________________________
#include<bits/stdc++.h>//头文件
using namespace std;
int main()//主函数
{//X代表横坐标,y代表纵坐标,m代表炸弹的数量,sum表示垃圾的数量,maxn表示最多垃圾的数量int x[25],y[25],m[25],i,j,k,d,n,maxn=-1,t=0,sum;cin>>d>>n; for(i=1;i<=n;i++)//输入每一堆垃圾的坐标cin>>x[i]>>y[i]>>m[i]; for(i=0;i<=1024;i++)//横坐标最小是0,最大是1024for(j=0;j<=1024;j++)//纵坐标最小是0,最大是1024{sum=0;//将垃圾的数量清零 for(k=1;k<=n;k++)//判断每一堆垃圾 if(x[k]<=i+d&&x[k]>=i-d&&y[k]<=j+d&&y[k]>=j-d)//是否在炸弹的爆炸范围内sum+=m[k];//将垃圾的数量累加入sumif(sum>maxn)//如果sum大于maxn{t=1;//最多的垃圾有一个maxn=sum;//将sum的值更新为最大值}else//否则if(sum==maxn)//如果炸到的垃圾与最大值相同t++;//将最多的垃圾加1}cout<<t<<" "<<maxn;//输出几次可以炸掉最多的垃圾和炸掉最多的垃圾的数量。return 0;//结束程序
}
觉得有用不妨给个不要钱的赞呢?
NOI / 2.1基本算法之枚举 7213:垃圾炸弹相关推荐
- 7213:垃圾炸弹 ②
描述 2018年俄罗斯世界杯(2018 FIFA World Cup)开踢啦!为了方便球迷观看比赛,莫斯科街道上很多路口都放置了的直播大屏幕,但是人群散去后总会在这些路口留下一堆垃圾.为此俄罗斯政府决 ...
- NOI:7213 垃圾炸弹
题目链接:http://noi.openjudge.cn/ch0201/7213/ 转载:https://blog.csdn.net/qq_33193309/article/details/77161 ...
- NOI / 2.1基本算法之枚举 1809:两倍
1809:两倍 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍 ...
- NOI / 2.1基本算法之枚举2673:比赛排名
总时间限制: 1000ms 内存限制: 65536kB 描述 5名运动员参加100米赛跑,各自对比赛结果进行了预测: A说:E是第1名. B说:我是第2名. C说:A肯定垫底. D说:C肯定拿不了第1 ...
- NOI / 2.1基本算法之枚举——2983:谁是你的潜在朋友
总时间限制: 1000ms 内存限制: 65536kB 描述 "臭味相投"--这是我们描述朋友时喜欢用的词汇.两个人是朋友通常意味着他们存在着许多共同的兴趣.然而作为一个宅男,你发 ...
- 2.1基本算法之枚举_1812完美立方
http://noi.openjudge.cn/ch0201/1812/ C++代码来源于以下链接 https://blog.csdn.net/qq_26919935/article/details/ ...
- Openjudge_ 2.1基本算法之枚举_1809 两倍 C++ scratch
http://noi.openjudge.cn/ch0201/solution/21246662/ /* Openjudge_ 2.1基本算法之枚举_1809 两倍 http://noi.openju ...
- 2.1基本算法之枚举_1749数字方格
http://noi.openjudge.cn/ch0201/1749/ /* 2.1基本算法之枚举_1749数字方格01 http://noi.openjudge.cn/ch0201/1749/ht ...
- 1.Python算法之枚举算法
1.什么是枚举算法? 枚举算法也叫穷举算法,最大特点是在面对任何情况时会尝试每一种解决方法.在进行归纳推力时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么这个结论是可靠的,这种归纳方 ...
最新文章
- android sqlite用户注册代码,用户名和密码登录android登录sqlite
- SAP PP使用ECR去修改BOM主数据
- OSChina 周四乱弹 ——震惊!程序员的时间都用来干这个!
- Codeforces 610C:Harmony Analysis(构造)
- IOS 中视图控制器的生命周期
- python跑一亿次循环_python爬虫爬取微博评论
- 只需四步完成java JDK1.8的下载安装与配置【图文详解】
- php接收base64图片并保存
- 数据库-表记录增删改
- ubuntu安装teamviewer教程 linux安装teamviewer教程
- 第一个C#程序—C#基础回顾
- 推荐:Windows平台上三款提高工作效率的免费神器!
- python函数大全pdf_python内置函数大全.pdf
- Paypal无限转圈
- c语言中wsadata用法,C/C++知识点之记Windows下初次使用dev C++进行socket编程过程
- flv格式转换为mp4(ffmpeg)
- 5w 字 | 172 图 | 超级赛亚级 Spring Cloud 实战
- 用超算平台跑深度学习模型【新用户赠送200元体验金】
- 阿里旺旺登陆提示超时
- vba更改计算机系统时间,如何设置系统日期,一行VBA编程代码教你学会