新闻详情

新闻详情

首页 / 资讯中心 / 详情

【蓝桥杯】0仙境诅咒 — BFS/DFS 图论连通性问题(C++ 题解)

发布时间:2026/9/28 21:21:09来源:尧图网络
【蓝桥杯】0仙境诅咒 — BFS/DFS 图论连通性问题(C++ 题解)
【蓝桥杯】0仙境诅咒 — BFS/DFS 图论连通性问题C 题解1. 题目描述题目来源蓝桥云课 - 0仙境诅咒难度易 (LV.1)标签DFS / BFS / 图的连通性问题简述在仙境中有 N 位修仙者坐标分别为 (X_i, Y_i)。第一位修仙者妮妮即下标为 0 的修仙者受到了诅咒。诅咒具有传递性如果一个修仙者被诅咒那么距离他不超过 D 的范围内的所有修仙者也都会被诅咒。请求出最终哪些修仙者会被诅咒。数据范围1 N 1000-1000 X_i, Y_i 1000坐标为实数1 D 10002. 常见误区与原代码分析很多初学者容易将题目理解为“只计算每个人到原点 (0,0) 或妮妮的距离”。典型错误思路仅判断每个修仙者到妮妮的距离是否 D。忽略了连通性连锁传播即便修仙者 C 距离妮妮超过 D但只要 C 距离“已被诅咒的修仙者 B”不超过 DC 就会被感染。3. 解题思路本题本质上是一个无向图的连通块遍历问题建立连通关系两点 u 和 v 之间的欧氏距离小于等于 D即 (X_u - X_v)^2 (Y_u - Y_v)^2 D^2时两点之间存在一条无向边。图的遍历从起点 0妮妮开始使用BFS广度优先搜索或DFS深度优先搜索遍历所有可达的点。精度处理坐标为实数计算距离平方时用double存储比较时可加上微小的浮点误差容限如1e-9。由于 N 1000整体判断的复杂度为 O(N^2)可以完美在 2 秒内通过。4. C AC 代码#includebits/stdc.husingnamespacestd;// 计算两点之间的欧氏距离平方doubledistSq(doublex1,doubley1,doublex2,doubley2){return(x1-x2)*(x1-x2)(y1-y2)*(y1-y2);}intmain(){// 优化输入输出效率ios::sync_with_stdio(false);cin.tie(nullptr);intn;if(!(cinn))return0;vectorpairdouble,doublep(n);for(inti0;in;i){cinp[i].firstp[i].second;}doubled;cind;doubled2d*d;// 距离阈值的平方vectorboolvis(n,false);queueintq;// 起点第 0 位修仙者妮妮首先被诅咒vis[0]true;q.push(0);// BFS 遍历while(!q.empty()){intuq.front();q.pop();for(intv0;vn;v){if(!vis[v]){// 判断 u 与 v 之间的距离平方是否 D^2if(distSq(p[u].first,p[u].second,p[v].first,p[v].second)d21e-9){vis[v]true;q.push(v);}}}}// 顺序输出结果for(inti0;in;i){cout(vis[i]?1:0)\n;}return0;}5. 复杂度分析时间复杂度O(N2)\mathcal{O}(N^2)O(N2)每个节点入队一次遍历每个节点时扫描其余NNN个节点对N≤1000N \le 1000N≤1000而言计算量约为10610^6106次轻松在 2 秒限制内跑完。空间复杂度O(N)\mathcal{O}(N)O(N)仅需存储NNN个点的坐标数组、访问标记数组vis及 BFS 队列。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Eclipse Mosquitto 2.0.12 发布解读:安全修复、Broker 与客户端库关键变更详解 2026/9/28 22:15:00

Eclipse Mosquitto 2.0.12 发布解读:安全修复、Broker 与客户端库关键变更详解

物联网消息队列后端 【免费下载链接】mosquitto Eclipse Mosquitto - An open source MQTT broker 项目地址: https://gitcode.com/gh_mirrors/mosquit/mosquitto 点击查看 免费下载 Eclipse Mosquitto 2.0.12 是 Mosquitto 2.0 系列的一个安全与缺陷修复版本&…

阅读更多 →
AI短剧制作中,怎样提高提示词的精准度? 2026/9/28 22:14:26

AI短剧制作中,怎样提高提示词的精准度?

回答“怎样提高提示词的精准度”这件事, 核心路径是给模型补齐角色、任务、上下文、约束、输出格式五要素, 把模糊指令拆到分镜级。特种猫的做法是把这套方法内置到分镜脚本生成流程中, 创作者不用手动逐条调参。截至2026年, AI短剧创作者普遍踩的坑集中在三处: 角色跨。在该平…

阅读更多 →
安卓设备通电自启实战:修改boot.img实现无人值守自动开机 2026/9/28 22:14:18

安卓设备通电自启实战:修改boot.img实现无人值守自动开机

1. 安卓设备通电自启的需求背景与方案选型1.1 为什么会有“通电开机”这种需求手里有一批安卓6.0的老设备,平板也好,广告机也好,工控板也好,用久了电池鼓包、电源管理芯片老化,最典型的表现就是:插着电用没…

阅读更多 →
基于YOLOv5的旋转目标检测实战:从DOTA标注转换到模型调优 2026/9/28 22:14:12

基于YOLOv5的旋转目标检测实战:从DOTA标注转换到模型调优

简介:这份资源面向计算机视觉开发者与目标检测学习者,提供基于Python与YOLOv5的旋转目标检测完整实现,用于解决倾斜、旋转物体难以用常规水平矩形框精确定位的问题,适用于遥感影像、航拍、工业质检等场景。压缩包共150个文件&…

阅读更多 →
Java医院挂号系统:Servlet+JDBC实战与并发一致性保障 2026/9/28 22:13:44

Java医院挂号系统:Servlet+JDBC实战与并发一致性保障

简介:这是一套基于Java技术栈开发的医院预约挂号系统源码,面向Java Web初学者与中级开发者,聚焦医疗信息化场景下的典型业务实现,如用户认证、医生排班、在线预约、数据持久化与前后端交互。资源包为ZIP格式,大小37.3M…

阅读更多 →
DeepMind Lab 观测(Observations)体系全解:内置、自定义与调试观测的配置与原理 2026/9/28 22:13:37

DeepMind Lab 观测(Observations)体系全解:内置、自定义与调试观测的配置与原理

人工智能强化学习机器学习 【免费下载链接】lab A customisable 3D platform for agent-based AI research 项目地址: https://gitcode.com/gh_mirrors/la/lab 点击查看 免费下载 观测(observation)是智能体从环境中获取信息的唯一通道。在 …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉