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

相关内容

热门资讯

自制安卓系统平板电脑,性能与创... 亲爱的读者们,你是否厌倦了市面上的平板电脑千篇一律?想要拥有一台独一无二的自制安卓系统平板电脑吗?那...
solo3安卓系统能用,体验升... 你有没有听说最近安卓系统界的一个大新闻?那就是solo3安卓系统竟然可以完美兼容各种设备,简直是安卓...
tv版安卓破系统卸,轻松恢复纯... 你有没有遇到过这种情况?手机里的安卓系统突然变得不正常了,各种卡顿、崩溃,让人头疼不已。别急,今天就...
山寨windows平板装安卓系... 你有没有想过,那些看似普通的山寨Windows平板,竟然能装上安卓系统?听起来是不是有点不可思议?别...
安卓车机系统校正,智能驾驶体验... 你有没有发现,你的安卓车机系统有时候就像个不听话的小孩子,时不时地给你点小麻烦?别急,今天就来给你详...
怎样从安卓转移苹果系统,一步到... 你终于下定决心要从安卓转到苹果系统了?这可是个大转变呢!想象你的手机从此将拥有更加流畅的体验、更强大...
安卓变成ios系统软件,系统软... 你知道吗?最近有个大新闻在科技圈里炸开了锅,那就是安卓手机竟然要变成iOS系统软件了!是不是觉得有点...
凤凰安卓系统不能进入,探究原因... 最近是不是有不少小伙伴在使用凤凰安卓系统时遇到了一个让人头疼的问题——就是系统突然不能进入了?别急,...
手机怎么不卡安卓系统,安卓系统... 手机卡顿真是让人头疼啊!尤其是安卓系统,有时候感觉就像老牛拉破车,慢吞吞的。别急,今天就来给你支几招...
安卓系统内存怎么选择好,如何挑... 你有没有想过,为什么你的安卓手机有时候会卡得像蜗牛呢?其实,这跟你的手机内存选择有很大关系哦!今天,...
安卓系统怎么打开键盘,安卓系统... 你是不是在用安卓手机,突然发现键盘怎么也打不开了呢?别急,让我来给你详细介绍安卓系统打开键盘的几种方...
安卓原生精简系统哪个好,哪款更... 你有没有想过,手机系统就像是我们衣橱里的衣服,有时候太多太花哨,反而让人感到繁琐。今天,咱们就来聊聊...
国内哪个安卓系统最好,引领智能... 你有没有想过,手机里的安卓系统就像是我们生活中的各种品牌,各有各的特色和魅力呢?今天,就让我带你来一...
安卓4.2系统下载安装,安卓4... 你有没有想过,你的安卓手机是不是该升级一下系统了呢?别看它现在还能用,但有时候真的有点卡顿,不是吗?...
自带安卓系统的音响品牌,自带安... 你有没有想过,家里的音响设备也能像智能手机一样,自带操作系统呢?没错,现在就有这么一些音响品牌,它们...
安卓系统能送ios系统皮肤吗,... 你有没有想过,你的安卓手机能不能穿上iOS系统的皮肤呢?这听起来就像是给手机换了个新衣裳,是不是很神...
漏电火灾报警系统安卓版,漏电火... 你知道吗?现在科技的发展真是让人惊叹不已,连我们日常生活中的小细节都能被高科技产品所改变。今天,我就...
ticwatch如何进入安卓系... 你有没有想过,一款智能手表也能玩转安卓系统?没错,今天就要来聊聊这款神奇的TicWatch,看看它是...
安卓92s系统,探索全新智能体... 你有没有听说啊?安卓92s系统最近可是火得一塌糊涂!这款系统不仅带来了全新的功能,还让我们的手机体验...
闺蜜机是安卓系统,畅享智能生活... 亲爱的,你有没有想过,为什么你的闺蜜总是那么聪明,手机用得那么溜?嘿秘密就在于她手中的那个神器——闺...