【蓝桥杯每日一题】扫雷
扫雷
知识点
2024-12-3 蓝桥杯每日一题 扫雷 dfs (bfs也是可行的)
题目大意
在一个二维平面上放置这N个炸雷,每个炸雷的信息有$(x_i,y_i,r_i) $,前两个是坐标信息,第三个是爆炸半径。然后会输入M个排雷火箭,同样的信息;排雷火箭会将范围内所有的炸雷炸掉,并且会引发一连串爆炸这就要根据爆炸半径来判断。
解题思路
- 要考虑怎么存储这个炸弹信息,并且还要方便遍历到。在题目中坐标范围是 1 0 9 10^9 109,肯定不能存到二维数组的平面坐标中。
- 使用 m a p < p a i r < i n t , i n t > , v e c t o r < i n t > > map<pair<int,int>,vector<int>> map<pair<int,int>,vector<int>>,这样方便以O(1)的时间访问到当前位置,并且题目中明确表示同一个点可能会包含多个炸雷或火箭,(这一点一定看清楚),我就是这一点磕了一下;然后就是一定要使用map来定义,unordered_map我用的不行,应为这里使用到了pair。
- 最后就是递归遍历了,没输入一个火箭调用dfs;而且注意到 r 的的范围是很小的,我们就可以通过遍历当前位置为中心向四周扩展 r 长度的正方形,然后找到雷之后还要判断两点之间的距离是否在园内即可。
Accepted
#include <bits/stdc++.h>
using namespace std;const int N = 5e4+10;
typedef long long ll;
typedef pair<int,int> pii;
int n,m,cnt;
map<pii,vector<int>> a;
// 两点之间的距离
ll dist(int x1,int y1,int x2,int y2) {return 1ll*(x1-x2)*(x1-x2) + 1ll*(y1-y2)*(y1-y2);
}void dfs(int x,int y,int r) {for(int i = x-r;i <= x+r;i++) {for(int j = y-r;j <= y+r;j++) {if(a.count({i,j})) {int len = a[{i,j}].size();for(int k = 0;k < len;k++) {int rr = a[{i,j}][k];if(rr > 0 && dist(i,j,x,y) <= 1ll*r*r) {a[{i,j}][k] = 0;cnt++;dfs(i,j,rr);}}}}}
}int main()
{int x,y,r;cin>>n>>m;for(int i = 1;i <= n;i++) {cin>>x>>y>>r;a[{x,y}].push_back(r);}while(m--) {cin>>x>>y>>r;dfs(x,y,r);}cout<<cnt;return 0;
}
备注
欢迎大家一起来备战蓝桥杯。可以私信我加联系方式,人多的话咱就拉个群了。
相关文章:
【蓝桥杯每日一题】扫雷
扫雷 知识点 2024-12-3 蓝桥杯每日一题 扫雷 dfs (bfs也是可行的) 题目大意 在一个二维平面上放置这N个炸雷,每个炸雷的信息有$(x_i,y_i,r_i) $,前两个是坐标信息,第三个是爆炸半径。然后会输入M个排雷火箭࿰…...
【算法】棋盘覆盖问题源代码及精简版
目录 一、题目 二、样例 三、示例代码 四、精简代码 五、总结 对于棋盘覆盖问题的解答和优化。 一、题目 输入格式: 第一行,一个整数n(棋盘n*n,n确保是2的幂次,n<64) 第二行,两个整数…...
Django的介绍
Django是一个高级的Python Web框架,它鼓励快速开发和干净、实用的设计。Django遵循MVC设计模式,即模型(Model)、视图(View)和控制器(Controller),并提供了一个即时可用的…...
【Spring工具插件】lombok使用和EditStarter插件
阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 引入 一:lombok介绍 1:引入依赖 2:使用 3:原理 4&…...
掌控时间,成就更好的自己
在个人成长的道路上,时间管理是至关重要的一环。有效的时间管理能够让我们更加高效地完成任务,实现自己的目标,不断提升自我。 时间对每个人都是公平的,一天只有 24 小时。然而,为什么有些人能够在有限的时间里做出卓…...
Ruby On Rails 笔记2——表的基本知识
Active Record Basics — Ruby on Rails Guides Active Record Migrations — Ruby on Rails Guides 原文链接自取 1.Active Record是什么? Active Record是MVC模式中M的一部分,是负责展示数据和业务逻辑的一层,可以帮助你创建和使用Ruby…...
【AI系统】EfficientNet 系列
EfficientNet 系列 本文主要介绍 EffiicientNet 系列,在之前的文章中,一般都是单独增加图像分辨率或增加网络深度或单独增加网络的宽度,来提高网络的准确率。而在 EfficientNet 系列论文中,会介绍使用网络搜索技术(NAS)去同时探索…...
【Python小白|Python内置函数学习2】Python有哪些内置函数?不需要导入任何模块就可以直接使用的!现在用Python写代码的人还多吗?
【Python小白|Python内置函数学习2】Python有哪些内置函数?不需要导入任何模块就可以直接使用的!现在用Python写代码的人还多吗? 【Python小白|Python内置函数学习2】Python有哪些内置函数?不需要导入任何模块就可以直接使用的&a…...
蓝桥杯分治
P1226 【模板】快速幂 题目描述 给你三个整数 𝑎,𝑏,𝑝a,b,p,求 𝑎𝑏 mod 𝑝abmodp。 输入格式 输入只有一行三个整数,分别代表 𝑎,𝑏,𝑝a,b,p。…...
YOLOv8实战无人机视角目标检测
本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对无人机目标数据集进行训练和优化,该数据集包含丰富的无人机目标图像…...
三、【docker】docker和docker-compose的常用命令
文章目录 一、docker常用命令1、镜像管理2、容器管理3、容器监控和调试4、网络管理5、数据卷管理6、系统维护7、实用组合命令8、常用技巧二、docker-compose常用命令1、基本命令2、构建相关3、运行维护4、常用组合命令5、实用参数 一、docker常用命令 1、镜像管理 # 查看本地…...
Qt 2D绘图之五:图形视图框架的结构、坐标系统和框架间的事件处理与传播
参考文章链接: Qt 2D绘图之五:图形视图框架的结构和坐标系统 Qt 2D绘图之六:图形视图框架的事件处理与传播 图形视图框架的结构 在前面讲的基本绘图中,我们可以自己绘制各种图形,并且控制它们。但是,如果需要同时绘制很多个相同或不同的图形,并且要控制它们的移动、…...
基于SpringBoot+Vue的美妆购物网站
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
MySQL之创建和管理表
目录 1. MySQL中的数据类型编辑编辑 2. 创建和管理数据库 方式1:创建数据库 方式2:创建数据库并指定字符集 方式3:判断数据库是否已经存在,不存在则创建数据库( 推荐 ) 总结 2.2 使用数据库 查看当…...
肌肉骨骼肿瘤治疗市场:潜力无限,未来可期
肌肉骨骼肿瘤治疗作为现代医学的重要分支,专注于应对骨骼和肌肉系统中的良性和恶性肿瘤。随着全球人口老龄化和生活方式的改变,肌肉骨骼疾病日益成为公共卫生的重要问题。与此同时,医疗技术的进步和患者对高质量医疗服务的需求不断推动该市场…...
QGIS 创建三维渲染动画
打开数据包中的denali工程文档,可以看到DEM图层和山体阴影图层。首先创建彩色的山体阴影效果: 接下来新建3D视图: 配置三维地图 配置后,可用鼠标中键、右侧的操作盘等进行三维旋转等操作。 接下来在三维地图中创建动画效果&#x…...
Vue生成类似于打卡页面
数据表格 <el-table :data"tableData" border height"calc(100vh - 240px)" :cell-style"cellFun"><el-table-column label"姓名" show-overflow-tooltip prop"name" align"center"/><el-table-co…...
软件工程——期末复习(2)
Part1:软件工程基本概念 软件程序文档数据 在软件工程中,软件通常被定为程序、文档和数据的集合。程序是按事先设计的功能和性能要求编写的指令序列;程序是完成指定功能的一段特定语言代码。文档是描述程序操作和使用的文档,是与…...
vxe-table 键盘操作,设置按键编辑方式,支持覆盖方式与追加方式
vxe-table 全键盘操作,按键编辑方式设置,覆盖方式与追加方式; 通过 keyboard-config.editMode 设置按键编辑方式;支持覆盖方式编辑和追加方式编辑 安装 npm install vxe-pc-ui4.3.15 vxe-table4.9.15// ... import VxeUI from v…...
【BUG】VMware|vmrest正在运行此虚拟机,无法配置或删除快照
VMware版本:VMware 16 文章目录 省流版问题解决方案 详细解释版问题解决方案总结 省流版 问题 只读,因为vmrest正在运行虚拟机。 解决方案 参考:虚拟机设置,只读,因为vmrest正在运行此虚拟机。有谁遇到过这种问题吗&…...
像素剧本圣殿详细步骤:如何重置时空+保存平行宇宙创作记录
像素剧本圣殿详细步骤:如何重置时空保存平行宇宙创作记录 1. 认识像素剧本圣殿 像素剧本圣殿是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。它将强大的AI推理能力与独特的8-Bit复古美学相结合,为创作者提供了一个沉浸式的剧本开发环境。…...
基于U-Net的肺部CT结节检测系统设计与实现
摘要:肺癌是当前威胁人类健康的重要疾病之一,肺结节作为肺癌早期筛查和诊断的重要影像学表现,其准确检测具有重要意义。CT影像因具有较高的空间分辨率,被广泛应用于肺部疾病检查。然而,传统人工阅片方式存在工作量大、…...
Python 闭包与装饰器
在 Python 学习中,闭包和装饰器是两个既关联又容易混淆的知识点,尤其是结合嵌套函数使用时,常常分不清执行逻辑。但其实只要抓住核心原理,再结合简单案例拆解,就能轻松掌握。 一、前置回顾:函数与局部变量的…...
学术研究助手:OpenClaw+Gemma-3-12b-it自动化文献综述生成
学术研究助手:OpenClawGemma-3-12b-it自动化文献综述生成 1. 为什么需要自动化文献综述工具 作为一名经常需要写论文的研究生,我深刻体会到文献综述是整个研究过程中最耗时耗力的环节之一。每次开题或写新论文时,都需要花费数天甚至数周时间…...
Linux下用tar.gz压缩含软连接的目录,为什么比zip更靠谱?
Linux下处理含软连接目录:为什么tar.gz比zip更可靠? 在Linux系统管理中,文件打包和压缩是日常操作中不可或缺的一部分。当目录结构中含有软连接(symbolic link)时,选择合适的压缩格式就显得尤为重要。许多管…...
用九齐单片机NY8B062F定时器实现精准延时与系统时基:从4ms中断到1秒计时的完整工程实践
九齐单片机NY8B062F定时器工程实战:构建高精度时基与延时系统 在嵌入式系统开发中,定时器如同设备的心跳,为各类功能提供精准的时间基准。九齐NY8B062F作为一款高性价比8位单片机,其四组灵活配置的定时器资源尤其适合小家电、智能…...
收藏备用|小白/程序员必看!Agentic AI时代,手把手教你构建高效可靠AI Agent
在Agentic AI飞速迭代的当下,AI Agent已成为大模型落地的核心载体,不少小白程序员和入行开发者都想抓住这一风口,但常常陷入“不知从何下手”的困境。本文将从实操角度,详细拆解构建可靠高效AI Agent应用的全流程,核心…...
SEO的黑帽和白帽技术分别是什么_如何查询网站的SEO指标和排名数据
SEO的黑帽和白帽技术分别是什么_如何查询网站的SEO指标和排名数据 在当今的互联网时代,搜索引擎优化(SEO)是提升网站流量和可见度的关键。SEO有许多技术和方法,其中包括白帽技术和黑帽技术。了解这些技术不仅有助于提升网站的搜索…...
嵌入式面试最重要的是项目经历
很多嵌入式应届生面试,我发现大家都挂在同一个地方 项目一开口,就让人听不下去了。 不是项目太少,而是项目太普通。 不是完全没做,而是讲不出自己到底做了什么。 不是技术栈不对,而是没法证明你的能力真的能落到工作里…...
74HC595移位寄存器驱动原理与CrazyHC595库深度解析
1. CrazyHC595库概述:面向嵌入式工程师的74HC595移位寄存器驱动深度解析74HC595是工业界最经典、应用最广泛的8位串行输入/并行输出移位寄存器芯片之一。其核心价值在于以3根GPIO线(数据、时钟、锁存)扩展出8个可独立控制的数字输出通道&…...
