蓝桥杯之图
图:
对于图来说,重点在于之后的最短路径算法,这边简单做一下了解即可





代码:
#include<iostream>
#include<string>
#include<vector>
#include<list>
#include<queue>
using namespace std;
class Digraph
{
private://顶点类型struct Vertic{Vertic(string data) :data_(data) {}string data_;//存储顶点信息list<int>adjList_;//邻接链表};vector<Vertic>vertics;//邻接表结构public:void readFile(string file)//读取配置文件生成邻接表{FILE* pf = fopen(file.c_str(), "r");if (pf == nullptr){throw file + "not exists!";}//占用0号位置,利用emplace_back()可以利用自定义对象的构造函数vertics.emplace_back("");while (!feof(pf)){char line[1024] = { 0 };fgets(line, 1024, pf);string Line(line);//增加一个节点信息vertics.emplace_back(Line.substr(0,Line.size()-1));fgets(line, 1024, pf);char* vers = strtok(line, ",");while (vers != nullptr){int a = atoi(vers);if(a>0)vertics.back().adjList_.emplace_back(a);vers=strtok(NULL, ",");}}fclose(pf);}//输出邻接表信息void show()const{for (int i=1;i<vertics.size();i++){cout << vertics[i].data_ << " ";for (auto a : vertics[i].adjList_){cout << a << " ";}cout << endl;}}//图的深度优先遍历void dfs(){vector<bool>state(vertics.size(), 0);dfs_(1,state);cout << endl;}//图的广度优先遍历void bfs(){queue<int>que;vector<bool>state(vertics.size(), 0);que.push(1);state[1] = true;while (!que.empty()){int vertic=que.front();que.pop();cout << vertics[vertic].data_ << " ";for (auto a : vertics[vertic].adjList_){if (state[a] == false){que.push(a);state[a] = true;}}}cout << endl;}//不带权值的最短路径,类似与广度优先遍历,一层一层找肯定会比深度遍历要强void shortPath(int start,int end){queue<int>que;vector<bool>state(vertics.size(), 0);vector<int>path(vertics.size(), 0);que.push(start);state[start] = true;while (!que.empty()){int vertic = que.front();if (vertic == end)break;que.pop();//cout << vertics[vertic].data_ << " ";for (auto a : vertics[vertic].adjList_){if (state[a] == false){que.push(a);state[a] = true;path[a] = vertic;}}}printPath(path,end);cout << endl;}
private:void dfs_(int start,vector<bool>&state){if (state[start]){return;}cout << vertics[start].data_ << " ";state[start] = true;for (auto a : vertics[start].adjList_){dfs_(a, state);}}void printPath(vector<int>& path,int end){if (end == 0)return;printPath(path, path[end]);cout << vertics[end].data_ << " ";}
};
int main()
{Digraph graph;graph.readFile("jiedian.txt");graph.show();graph.dfs();graph.bfs();graph.shortPath(1, 8);return 0;
}
相关文章:
蓝桥杯之图
图: 对于图来说,重点在于之后的最短路径算法,这边简单做一下了解即可 代码: #include<iostream> #include<string> #include<vector> #include<list> #include<queue> using namespace std; clas…...
中兴光猫修改SN,MAC,修改地区,异地注册,改桥接,路由拨号
前言 请先阅读上一篇博客获取到光猫超级密码电信光猫获取超级密码 电信光猫天翼网关4.0获取超级密码教程 四川电信光猫 中兴 F1855V2 ZXHN F1855V2 telent权限 实战 实测_天翼4.0光猫超级密码-CSDN博客 修改SN-修改地区,光猫异地注册,设置桥接模式&#…...
【kafka系列】Kafka如何保证消息不丢失?
目录 1. 生产者端:确保消息成功发送到Broker 核心机制: 关键步骤: 2. Broker端:持久化与副本同步 核心机制: 关键源码逻辑: 3. 消费者端:可靠消费与Offset提交 核心机制: 关…...
AtCoder Beginner Contest 393 —— E - GCD of Subset 补题 + 题解 python
AtCoder Beginner Contest 393 E - GCD of Subset Problem Statement You are given a sequence A ( A 1 , A 2 , … , A N ) A (A_1, A_2, \dots, A_N) A(A1,A2,…,AN) of length N N N and a positive integer K K K (at most N N N). For each i 1 , 2 , … …...
vue3响应式丢失解决办法(三)
vue3的响应式的理解,与普通对象的区别(一) vue3 分析总结响应式丢失问题原因(二) 经过前面2篇文章,知道了响应式为什么丢失了,但是还是碰到了丢失情况,并且通过之前的内容还不能解…...
BY组态:构建灵活、可扩展的自动化系统
引言 在现代工业自动化领域,BY组态(Build Your Own Configuration)作为一种灵活、可扩展的解决方案,正逐渐成为工程师和系统集成商的首选。BY组态允许用户根据具体需求自定义系统配置,从而优化生产效率、降低成本并提…...
2025 (ISC)²CCSP 回忆录
2025.1.20 广州,周一,我一次性通过了CCSP的考试。 为什么要考证? 个人成长所需 职业热情:做一行爱一行,既然我投入了美好的青春年华到网络安全行业当中,那么对于这个行业最有权威的认证,是肯定…...
强化学习笔记7——DDPG到TD3
前提:基于TD 的方法多少都会有高估问题,即Q值偏大。原因两个:一、TD目标是真实动作的高估。 二:自举法高估。 DDPG 属于AC方法:异策略,适合连续动作空间,因为他的策略网络直接输出的动作&#…...
win10 系统 自定义Ollama安装路径 及模型下载位置
win10 系统 自定义Ollama安装路径 及模型下载位置 由于Ollama的exe安装软件双击安装的时候默认是在C盘,以及后续的模型数据下载也在C盘,导致会占用C盘空间,所以这里单独写了一个自定义安装Ollama安装目录的教程。 Ollama官网地址࿱…...
-bash:/usr/bin/rm: Argument list too long 解决办法
问题概述 小文件日志太多导致无法使用rm命令,因为命令行参数列表的长度超过了系统允许的最大值。 需要删除/tmp目录下的所有文件,文件数量比较多。 ls -lt /tmp | wc -l 5682452 解决方法如下: 使用find -exec 遍历,然后执行删…...
内容中台重构企业内容管理流程驱动智能协作升级
内容概要 内容中台作为企业数字化转型的核心基础设施,通过技术架构革新与功能模块整合,重构了传统内容管理流程的底层逻辑。其核心价值在于构建动态化、智能化的内容生产与流转体系,将分散的创作、存储、审核及分发环节纳入统一平台管理。基…...
python实现YouTube关键词爬虫(2025/02/11)
在当今数字化时代,YouTube作为全球最大的视频分享平台之一,拥有海量的视频资源。无论是进行市场调研、内容创作还是学术研究,能够高效地获取YouTube上的相关视频信息都显得尤为重要。今天,我将为大家介绍一个基于Python实现的YouT…...
【效率技巧】怎么做思维导图||数学思维||费曼学习法
目录标题 常见问题:认知误区和建议:思维导图按照功能分类思维导图好处步骤(拆解的步骤) 常见问题: 1、做好的思维导图浪费时间 2、做简单的思维导图没有效果 认知误区和建议: 1、做思维导图工具…...
LabVIEW与USB设备开发
开发一台USB设备并使用LabVIEW进行上位机开发,涉及底层驱动的编写、USB通信协议的实现以及LabVIEW与设备的接口设计。本文将详细介绍如何开发USB设备驱动、实现LabVIEW与USB设备的通信以及优化数据传输,帮助用户顺利完成项目开发。下面是一个详细的说明&…...
动态规划LeetCode-416.分割等和子集
给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] 和 [11] 。 示例 2&…...
云原生(五十五) | ECS中自建数据库迁移到RDS
文章目录 ECS中自建数据库迁移到RDS 一、场景说明 二、ECS中自建数据库迁移到RDS实现步骤 三、 创建wordpress数据库 四、登录ECS导出wordpress数据库 五、返回RDS数据库管理控制台 六、开启外网地址并设置白名单 七、获取RDS外网访问地址 八、重新设置wordpress的wp-…...
【吾爱出品】 视频批量分段工具
视频批量分段工具 链接:https://pan.xunlei.com/s/VOJDvtHQE7GOiJ84WNea5Ay1A1?pwd5nta# 选择视频文件 启动程序后,点击 "文件" 菜单下的 "选择视频文件" 按钮,或者直接将视频文件拖放到程序窗口中的视频列表区域。支…...
HTML【详解】input 标签
input 标签主要用于接收用户的输入,随 type 属性值的不同,变换其具体功能。 通用属性 属性属性值功能name字符串定义输入字段的名称,在表单提交时,服务器通过该名称来获取对应的值disabled布尔值禁用输入框,使其无法被…...
二叉搜索树的实现(C++)
前言 二叉搜索树(搜索二叉树,Binary search tree)是一种特殊的二叉树。其规则为:左子树的值一定小于等于根,右子树的值一定大于等于根,并且左右子树也为搜索二叉树。 二叉搜索树的插入 1.若树为空…...
vue2老版本 npm install 安装失败_安装卡主
vue2老版本 npm install 安装失败_安装卡主 特别说明:vue2老版本安装慢、运行慢,建议升级vue3element plus vite 解决方案1: 第一步、修改npm 镜像为国内镜像 使用淘宝镜像: npm config set registry https://registry.npmmir…...
用Matlab复现NASA锂电池数据里的‘容量回升’怪现象(附完整代码)
用Matlab复现NASA锂电池数据中的"容量回升"现象及其电化学机理解析 锂电池作为现代储能技术的核心组件,其老化过程中的容量衰减规律一直是研究热点。但NASA公开数据集中的某些电池却展现出令人费解的现象——在持续衰减的总体趋势下,偶尔会出现…...
大语言模型置信度校准:原理、方法与实践
1. 置信度校准的核心概念解析在大语言模型(LLM)的实际应用中,我们经常会遇到一个令人困扰的现象:模型对自身输出的"自信程度"与实际情况存在偏差。比如模型以99%的置信度给出一个完全错误的答案,或者对正确答…...
从NASA到你的电脑:希尔伯特-黄变换(HHT)是如何‘听懂’非平稳信号的?
从NASA到你的电脑:希尔伯特-黄变换(HHT)是如何‘听懂’非平稳信号的? 想象一下,你正站在嘈杂的菜市场里,试图听清远处朋友的呼喊。背景中此起彼伏的叫卖声、车辆的喇叭声、人群的交谈声交织在一起——这就是…...
基于虚拟仪器的条码型水准尺检定装置边缘检测【附代码】
✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。 ✅ 如需沟通交流,扫描文章底部二维码。(1)水准尺条码图像预处理与改进Canny边缘粗定位:检定…...
《源·觉·知·行·事·物:生成论视域下的统一认知语法》第十三章 知的净化:从妄知到真知
原创声明:本文为作者周林东原创学术理论著作《源觉知行事物:生成论视域下的统一认知语法》的博客连载版。本书所述技术方案已提交中国发明专利申请,受相关法律保护。任何形式的商业使用,请与作者联系取得授权。欢迎基于学术目的的…...
Docker网络延迟高达400ms?用eBPF+量子调度模型实时诊断,3分钟定位瓶颈
更多请点击: https://intelliparadigm.com 第一章:Docker网络延迟的量子化认知革命 传统网络性能分析常将延迟视为连续可微的宏观量,而 Docker 容器间通信却在内核网络栈、cgroup 限流、iptables 规则与 veth pair 驱动层叠作用下࿰…...
全球化运营新挑战:数据治理如何破局
一、全球化运营的下一道门槛:数据治理2026年,企业全球化已从“市场拓展”进入“深度运营”阶段。当业务版图跨越多个国家和地区,一个被反复验证的挑战浮出水面:数据治理能力,正在成为制约全球化效率的核心变量。这背后…...
4步掌握VR-Reversal:从3D沉浸到2D平面的终极转换指南
4步掌握VR-Reversal:从3D沉浸到2D平面的终极转换指南 【免费下载链接】VR-reversal VR-Reversal - Player for conversion of 3D video to 2D with optional saving of head tracking data and rendering out of 2D copies. 项目地址: https://gitcode.com/gh_mir…...
避坑指南:用Open-GroundingDino训练自定义数据集,我踩过的那些环境与数据格式的坑
Open-GroundingDino实战:从数据集构建到模型训练的全流程避坑指南 当你第一次尝试用Open-GroundingDino训练自定义数据集时,可能会被各种环境配置、数据格式转换的问题搞得焦头烂额。作为一个在计算机视觉领域摸爬滚打多年的从业者,我最近刚完…...
别再硬画了!用Qt GraphicsView框架轻松搞定C++图形界面(附自定义三角形Item源码)
用Qt GraphicsView框架重构C图形界面的5个实战技巧 在C图形界面开发中,当需要处理大量动态图形元素时,传统的paintEvent方法很快就会遇到性能瓶颈和维护难题。我曾经接手过一个遗留项目,开发者用原生绘图API实现了包含200多个可拖动图形元素的…...
