OpenJudge NOI 2.1 7213:垃圾炸弹
admin
2024-02-25 10:28:37
0

【题目链接】

OpenJudge NOI 2.1 7213:垃圾炸弹

【题目考点】

1. 枚举

【解题思路】

解法1:枚举

可以枚举每个可能安放炸弹的位置,路口一共有1024∗1024≈1061024*1024\approx 10^61024∗1024≈106个

根据题意,当爆炸威力为d时,冲击波范围是个正方形,其边长为2d+12d+12d+1。
我们考虑当炸弹威力d为最大值50时,冲击波波及的正方形边长为2∗50+1=1012*50+1=1012∗50+1=101,这个范围内的位置有1012≈104101^2\approx 10^41012≈104个。
如果先枚举安放炸弹的位置,再枚举该炸弹波及的范围内的每个位置看这个位置有没有垃圾,那么总体复杂度会达到O(106∗104)=O(1010)O(10^6*10^4)=O(10^{10})O(106∗104)=O(1010),超过了O(107)O(10^7)O(107),是不可接受的。

考虑到有垃圾路口的数量n很小,最大值为20。那么我们在确定安放炸弹的位置后,枚举每个垃圾路口,看哪些垃圾路口在该炸弹的波及范围之内,将能被波及到的垃圾数量加和,即为在这里安装炸弹能销毁的垃圾数量。
枚举所有可以安放炸弹的位置:

  • 如果找到一个位置安放炸弹销毁的垃圾数量大于当前已知的最大垃圾销毁数量,那么可以安放炸弹的地点数量变为1。
  • 如果找到一个位置安放炸弹销毁的垃圾数量与当前已知最大垃圾销毁数量相同,那么可以安放炸弹的地点数量加1。

判断垃圾路口(i,j)是否在放在(x,y)位置的威力为d的炸弹波及范围内的方法:
垃圾路口在横向与纵向到(x,y)的距离都不能超过d。
即i与x的差值的绝对值要小于等于d,,同时j与y差值的绝对值要小于等于d,用代码表示为:abs(i-x)<= d && abs(j-y) <= d

【题解代码】

解法1:枚举

#include
using namespace std;
#define N 1030
struct Garbage
{int x, y, i;//(x,y)处有垃圾数量i	
}g[25];//g[i]:第i个垃圾路口 
int main()
{int d, n, mxSum = 0, ct;//mxSum:最大销毁垃圾数目 ct:可以销毁mxSum数量垃圾的炸弹安放位置数 cin >> d >> n;for(int i = 1; i <= n; ++i)cin >> g[i].x >> g[i].y >> g[i].i;		for(int i = 0; i <= 1024; ++i)for(int j = 0; j <= 1024; ++j){//在(i,j)位置放炸弹int sum = 0;//在(i,j)位置安放炸弹销毁的垃圾总和  for(int k = 1; k <= n; ++k)//看垃圾路口g[k]是否在(i,j)炸弹的范围之内 if(abs(i-g[k].x) <= d && abs(j-g[k].y) <= d)sum += g[k].i;if(sum > mxSum){mxSum = sum;//最大销毁垃圾数量ct = 1;//能销毁mxSum的炸弹位置变为1 }	else if(sum == mxSum)ct++;//能销毁mxSum的炸弹位置增加1}cout << ct << ' ' << mxSum;return 0;
}

相关内容

热门资讯

安卓系统投影仪1,开启家庭影院... 你有没有想过,家里的安卓手机或者平板,竟然能变成一个移动的投影仪?没错,就是那种可以投出大屏幕画面,...
安卓系统用在哪些手机,引领智能... 你有没有发现,现在市面上几乎每款手机都在用安卓系统呢?这可不是随便说说,咱们来聊聊,安卓系统到底都用...
荣耀适配安卓13系统吗,畅享智... 最近手机圈可是热闹非凡呢!不少小伙伴都在问,荣耀的新机是不是也要跟上时代的步伐,适配安卓13系统呢?...
安卓系统500天不卡,揭秘持久... 你有没有想过,一部手机用上500天还能流畅如初,是不是有点像神话里的故事呢?但今天,我要告诉你,这可...
安卓是实时系统架构,构建高效响... 你知道吗?在手机的世界里,安卓系统就像是一个超级英雄,它不仅强大,还拥有着独特的实时系统架构。今天,...
win11系统安装安卓子系统,... 亲爱的电脑迷们,你是否对Windows 11系统的新鲜功能感到好奇?尤其是那个让人眼前一亮的安卓子系...
安卓系统底层搭建教程 想要深入了解安卓系统的底层搭建吗?那就跟着我一起,揭开这神秘面纱的一角吧!在这个数字化时代,安卓系统...
黑鲨手机系统安卓版,畅享极致游... 亲爱的手机控们,你是否在寻找一款既能满足你对游戏热情,又能让你在日常生活中得心应手的手机呢?今天,就...
k60安卓系统版本,版本升级带... 你有没有发现,最近你的手机K60更新了安卓系统版本?是不是有点小激动呢?别急,让我带你一起探索这个新...
用qt开发安卓系统,基于Qt的... 你有没有想过,用Qt开发安卓系统竟然可以这样酷炫?没错,就是那个我们平时用来开发桌面应用程序的Qt,...
安卓耗电排行系统最新,揭秘手机... 手机电量告急,是不是你也和我一样,每天都在为手机电量发愁?别急,今天就来给你揭秘安卓耗电排行系统的最...
有没有折叠手机安卓系统,安卓系... 你有没有想过,手机界最近可是掀起了一股折叠风潮呢!想象一部手机既能轻松塞进口袋,又能展开成平板电脑,...
荣耀平板操作系统安卓,Andr... 亲爱的读者们,你是否曾想过,一款平板电脑的操作系统竟然能让你在指尖间畅游知识的海洋?今天,就让我带你...
原生安卓系统系统备用机 亲爱的读者,你是否曾想过,拥有一台运行原生安卓系统的备用机,会是怎样的体验呢?想象一台没有过多定制和...
安卓系统怎么复制页面,安卓系统... 你是不是也有过这样的经历:在安卓手机上浏览网页时,突然发现了一个超级有用的页面,想要保存下来,但又不...
安卓pie系统界面调节工具,打... 你有没有发现,自从你的安卓手机升级到了Pie系统,界面看起来好像有点不一样了呢?是不是觉得有点眼花缭...
一加3安卓系统耗电 最近是不是发现你的手机一加3在用安卓系统的时候,电量消耗得特别快?别急,今天就来给你好好分析分析这个...
安卓系统级app广告,安卓系统... 你有没有发现,每次打开手机,那些安卓系统级的app里总是充斥着各种广告?是不是感觉有点烦啊?今天,就...
安卓系统全部灰色怎么调,安卓系... 亲爱的手机控们,你是不是也遇到了这样的烦恼:安卓系统的界面突然全部变成了灰色,看起来既不美观又有点让...
原生安卓系统流畅度,流畅体验背... 亲爱的读者们,你是否曾在使用手机时,因为卡顿而感到烦恼?今天,就让我带你深入了解一下原生安卓系统的流...