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;
}

相关内容

热门资讯

手机安卓系统能否升级,全面解析... 亲爱的手机控们,你们有没有想过,你的手机是不是也能像我们一样,不断学习新技能,变得越来越聪明呢?没错...
手机安卓系统错误日志,诊断与优... 手机突然卡壳了,屏幕上蹦出个“系统异常,方法调用异常”的信息,后面跟着一串看不懂的字母和数字。这可怎...
安卓系统是实体系统吗,虚拟与现... 你有没有想过,安卓系统是不是一个实实在在的“实体系统”呢?听起来有点奇怪,对吧?但别急,今天咱们就来...
安卓系统软件 标记,架构、开发... 你有没有发现,手机里的那些软件图标,有时候就像是一群小精灵,各有各的标记,让人一眼就能认出它们是谁。...
飞鸽导航升级安卓系统,轻松提升... 亲爱的手机控们,你们有没有发现,最近你的手机导航软件有点不一样了呢?没错,就是那个我们每天都要依赖的...
安卓系统谁优化最好,安卓系统优... 你有没有发现,手机里的安卓系统就像是个大杂烩,每个品牌都给它加了点料,让它变得独一无二。但说到优化,...
安卓系统边锋兰溪麻将,畅玩手机... 你有没有发现,手机里那些小游戏,有时候比现实生活还精彩呢?比如,最近我迷上了一款叫做“边锋兰溪麻将”...
nvsip安卓系统闪退,“nv... 最近在使用NVSIP安卓系统的时候,你是不是也遇到了一个让人头疼的问题——那就是它时不时地闪退,简直...
平板安卓系统卸载软件,实用方法... 亲爱的平板用户们,你是否曾为那些占满你平板空间的安卓系统软件而烦恼呢?是不是觉得它们不仅占用内存,还...
安卓系统刷黑莓系统升级,黑莓手... 亲爱的手机控们,你们有没有想过,把你的安卓手机变成黑莓手机呢?是不是觉得这个想法有点酷炫?别急,今天...
安卓系统删除空白桌面,操作指南... 手机桌面上的空白页是不是让你觉得有点乱糟糟的?别急,今天就来教你几招,让你的安卓手机桌面焕然一新,告...
安卓关闭系统定位,隐私保护与电... 亲爱的手机控们,你们有没有想过,我们每天不离手的安卓手机,其实一直在默默记录着我们的行踪呢?没错,就...
安卓系统是全部开放,开放创新与... 你有没有想过,为什么安卓手机那么受欢迎呢?其实,这背后有一个大大的秘密——安卓系统的全部开放性!没错...
安卓11新系统耗电,安卓11系... 最近你的安卓手机是不是也成了“电老虎”?一不留神,电量就“嗖”地一下跑光了。别急,今天就来聊聊安卓1...
安卓系统定制怎么学,基于安卓系... 哇,你有没有想过,你的安卓手机其实可以是个独一无二的“艺术品”?没错,就是通过定制安卓系统,让你的手...
安卓操作做系统详解,操作原理、... 手机用久了是不是感觉有点卡?想给安卓手机来个大变身?那就得来个系统升级或者重装系统!别急,今天我就来...
安卓系统垃圾广告多,成因、影响... 亲爱的手机控们,你们有没有遇到过这种情况:手机里突然弹出一个广告,让你瞬间心情大好,然后又瞬间心情大...
安卓系统投影手机屏幕,多种方法... 哇塞,你有没有想过,你的安卓手机屏幕竟然可以变成一个大屏幕的“电影院”?没错,就是那种坐在沙发上,手...
安卓系统防走失app,安全出行... 你知道吗?现在这个世界上,科技可是越来越神奇了,连我们平时丢三落四的时候,都有办法用手机来帮忙找回来...
王者荣耀安卓系统抽奖,轻松获取... 你有没有发现,最近在王者荣耀里,安卓系统的玩家们都在疯狂讨论一个话题——抽奖!没错,就是那个让人又爱...