图论------如何使用矩阵来存储图的信息(邻接矩阵表示法)。

news2024/11/13 15:03:16

文章概述:

        刚开始图论我们先不急于解决实际的问题,先去搞明白如何存储图的信息。实际上我们早就接触过类似的内容,比如上一篇文章的开灯关灯游戏中,我们使用一维数组来表示一排灯的状态,但是如果要表示更加复杂的内容怎么办呢?比如我们在地图上知道几座城市之间的交通路线图,明白城市与城市之间是不是联通的,如果联通的话,具体路程是多少的信息该如何储存就是我们这篇的目的。

        

思路概述:

        和开灯游戏一样,我们可以使用数组的下标来表示不同的城市比如arr[5][5],表示有5座城市,arr[1][2]表示城市1到城市2的路程,arr[2][1],表示城市2到城市1的路程,根据具体问题不同可以将图分为有向图和无向图。

        无向图解释起来就是假设有两块地区,为地区a和地区b,二者之间建立了一条双向通道,这样的话a到b和b到a的路程长度一样,arr[a][b] == arr[b][a],所以无向图的矩阵都是关于主对角线对称的。

        有向图就是a,b二者之间的道路是两道单向道路,或者只有一条单向道路。这时候从a到b和从b到a的路程就不一样了。

        无论是有向图还是无向图,我们都要让arr[x][x]=0,因为从x城市到x城市的路程为0,所以矩阵的主对角线都为0.

        如果一所城市到另一所城市没有通路,例如a到b没有通路,那么我们可以给arr[a][b]赋值为负数或者正无穷(一个极大的数字)来表示。

具体图解:

        

        

        总结来看无向图矩阵主对角线元素为0,矩阵关于主对角线对称。

        有向图矩阵主对角线元素为0,一般不关于主对角线对称。

课后习题:

        

题目描述
在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的  T-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?

输入输出格式
输入格式
第一行是两个整数 N,M,N 表示成都的大街上有几个路口,标号为 1 的路口是商店所在地,标号为 N 的路口是赛场所在地,M 则表示在成都有几条路。
接下来 M 行,每行包括三个整数 A,B,C,表示在路口 A 与路口 B 之间有一条路,我们的工作人员需要 C 分钟的时间走过这条路。
输入保证至少存在 1 条商店到赛场的路线。
输出格式
输出一行,表示工作人员从商店走到赛场的最短时间。

输入输出样例1
输入
3 3
1 2 5
2 3 5
3 1 2
输出
2

输入输出样例2
输入
2 1
1 2 3
输出
3

        在此大家只要能使用图的邻接矩阵表示法将图表示出来,本文的目的便已经达成了,关于这道题的具体做法也不难,大家可以使用我们先前讲过的深度优先搜索来解决,之后我会带来更多的图论算法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2038140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【STM32】ADC模拟数字转换(规则组单通道)

本篇博客重点在于标准库函数的理解与使用,搭建一个框架便于快速开发 目录 ADC简介 ADC时钟配置 引脚模拟输入模式 规则组通道选择 ADC初始化 工作模式 数据对齐 触发转换方式 连续与单次转换模式 扫描模式 组内的通道个数 ADC初始化框架 ADC上电 ADC校…

高质量翻译对高质量内容和用户体验的影响

在当今全球化的数字环境中,高质量翻译在塑造高质量内容和用户体验方面的重要性怎么强调都不为过。随着公司和开发人员在不同地区和文化中扩大影响力,有效地翻译成为确保内容与不同受众产生共鸣的关键因素。高质量的翻译不仅保留了原始内容的完整性&#…

【网络层】上

目录 一. 网络层功能概述二. SDN的基本功能2.1 数据平面2.2 控制平面(传统方法/每路由器法)2.3 控制平面(SDN方法) 三. 路由算法与路由协议四. IP数据报4.1 IP数据报格式4.2 IP数据报分片4.3 IP地址 (IPV4)…

2024年华为认证H12-811题库(超级好用的刷题软件)

某个ACL规则如下:则下列哪些IP地址可以被permit规则匹配: rule 5 permit ip source 10.0.2.0 0.0.254.255 A、10.0.4.5 B、10.0.5.6 C、10.0.6.7 D、10.0.2.1 试题答案:A;C;D 试题解析: 10.0.2.000001010.00000000.00000010.0000000…

php 匿名类

https://andi.cn/page/621667.html

TMGM原油返佣是多少

在全球金融市场中,原油交易一直是投资者的重要选择之一。其中,交易平台的选择更是关系到投资者盈利的关键因素。TMGM,作为一家全球领先的在线交易提供商,以其公正、透明的交易环境和优质的服务赢得了广大投资者的信赖。那么&#…

【python小脚本】摄像头rtsp流转hls m3u8 格式web端播放

写在前面 工作需要,简单整理实际上这种方式延迟太高了,后来前端直接接的海康的的插件博文内容为 摄像头 rtsp 实时流转 hls m3u8 的一个 Python 脚本理解不足小伙伴帮忙指正 😃,生活加油 99%的焦虑都来自于虚度时间和没有好好做事&#xff0c…

【TiDB】07-tiup工具安装及使用

目录 1、在线安装 1.2、脚本代码如下 2、离线安装 2.1、下载安装包 2.2、安装脚本 3、卸载 4、常用命令 TiDB 提供了丰富的工具,可以帮助你进行部署运维、数据管理(例如,数据迁移、备份恢复、数据校验)、在 TiKV 上运行 S…

意大利Panel触摸屏维修显示屏EBP419 EMBEDDED

意大利Panel触摸屏维修显示屏维修EBP400系列EMBEDDED PC EBP419 panel维修产品主要包括:操作面板,触摸屏,终端机,触摸面板等。应用于包装、食品饮料、纺织与各种工业自动化领域。 panel触摸屏无论是机械工程、装置或单个应用,HMI几乎都可以简化操作,并且通过HMI,还…

大数据技术——DolphinScheduler的集群部署

目录 第1章 DolphinScheduler简介 1.1 DolphinScheduler概述 1.2 DolphinScheduler核心架构 第2章 DolphinScheduler部署说明 2.1 软硬件环境要求 2.1.1 操作系统版本要求 2.1.2 服务器硬件要求 2.2 部署模式 2.2.1 单机模式 2.2.2 伪集群模式 2.2.3 集群模式 第3章…

语音转文字例会纪要有什么好?一分钟掌握5款语音转文字软件

你是否曾在紧张的会议现场,因笔记跟不上发言者语速而焦虑不已?亦或是在采访结束后,面对一堆录音文件感到头大,不知如何迅速整理成可用的文本? 别急,科技的进步总能给我们惊喜。今天,我要为你带…

Golang多版本环境安装并存

1. 准备 请先安装最新版本的Go,详见 https://go.dev/doc/install go version2. 配置镜像加速 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct3. 安装Go指定版本 Golang官方提供dl工具来实现多版本的Go环境管理,详见项目&#…

带你速通C语言——常量(3)

常 量 在C语言中,常量是一种在程序执行过程中其值不会改变的量。声明常量的方法有两种主要方式:使用const关键字和预处理指令#define。 1.使用 const关键字 当你使用const关键字声明常量时,你需要在声明时立即初始化它,并且在其生…

【强化学习的数学原理】课程:从零开始到透彻理解-30分钟了解强化学习名词脉络

完全零基础的学习强化学习,希望能入门 此图为强化学习的一个脉络图,主要分为两个板块 基础的工具 基本的概念贝尔曼公式贝尔曼最优公式算法和方法 值迭代和策略迭代蒙特卡洛的方法时序差分的方法Value Function ApproximationPolicy Gradient 方法Actor…

糟糕界面集锦-控件篇07

对制作一个图形界面程序的步骤还有疑问吗?在Unisyns Automate Pro 中这个问题特别明显:开发人员显然忘记了TAB 键的作用是在控件之间遍历这个常识。作者使用了开发工具自动生成的控件次序(Tab Order)。程序的界面如下图,需要说明的是&#xf…

二、达梦数据库(DM8)- Django集成

达梦数据库(DM8)- Django集成 一、集成介绍二、下载驱动包三、Windows1.安装dmPython2.测试dmPython3.安装django-dmPython5.配置数据库信息6.测试 四、Linux1.x86_642.aarch_642.1 安装gcc编译工具2.2 安装dmPython 五、注意事项1.django-授权SYS.SYSOB…

<数据集>怠岗图片数据集<目标检测>

图片数量:2479张 类别数:3 序号类别名称图片数1工作状态9182使用手机2883打瞌睡1273 图片示例: 工作状态: 使用手机: 打瞌睡:

如何减少 Docker 镜像大小:6 种优化方法

如果您想减少docker镜像的大小,您需要使用构建docker镜像的标准最佳实践。 本博客讨论了您可以快速实施的各种优化技术,以制作最小、最精简的 docker 镜像。我们还将介绍一些用于 Docker 镜像优化的最佳工具。 Docker 作为一种容器引擎,可以…

SpringBoot快速入门(手动创建)

目录 案例:需求 步骤 1 创建Maven项目 2 导入SpringBoot起步依赖 3 定义Controller 4 编写引导类 案例:需求 搭建简单的SpringBoot工程,创建hello的类定义h1的方法,返回Hello SpringBoot! 步骤 1 创建Maven项目 大家&…

【Java】文件IO

文章目录 一、什么是文件二、硬盘1. 机械硬盘2. 固态硬盘 三、文件路径四、文件类型 文件 硬盘 系统管理文件,引入一个额专门的模块,“文件系统”,每个文件都有一个“路径”描述文件所在位置 一、什么是文件 此处谈到的文件,本…