图 (上)

定义

图(Graph)是由定点的有穷非空集合和定点之间的边的集合组成。通常表示为G(V,E),其中,G是一个图,V是图G中顶点的集合,E是图G中边的集合。

定义的说明

  • 顶点(Vertex):图中数据元素。
  • 没有空图的概念,顶点是非空集合
  • 边集可以是空的,边是用来描述顶点之间的逻辑关系。

相关术语

  • 无向图

若图G(V,E)中,顶点vi到vj之间的边没有方向,则称这条边为无向边,用无序偶对(vi,vj)表示。若图中任意顶点之间的边都是无向边,则称该图为无向图(Undirected graphs)

  • 有向图

若图G(V,E)中,顶点vi到vj之间的边有方向,则称这条边为有向边,也称为弧(Arc),用有序偶<vi,vj>表示。其中,vi称为弧尾,vj称为弧头。若图中任意顶点之间的边都是有向边,则称该图为有向图(Directed graphs)

**无向图使用的是(),有向图使用的是<>**
  • 简单图

在图中,若不存在顶点到自身的边,且同一条边不重复出现,则成这样的图为简单图. 下图是非简单图

  • 无向完全图

在无向图中,如果任意两个定点之间都存在边,则称为无向完全图。N个顶点的无向完全图有 条边。

n×(n?1)2

  • 有向完全图

在有向图中,如果任意两个定点之间都存在方向相反的两条弧,则称为有向完全图。N个顶点的有向完全图有 条边。

n×(n?1)

  • 稀疏图 & 稠密图

有很少条边或者弧的图称为稀疏图,反之为稠密图。这里的多与少是相对概念。

与图或者弧相关的比重或者数字叫做权。这样说,比较牵强,比如顶点是城市,边是城市之间的高速路,权就是公里数

带权的图通常称为网。

图的顶点与边间关系

  • 邻接点
  • 度 : 顶点V的度是与V相关的边的数目,记为TD(V),无向图中边数是个顶点度数和的一半。

e=12∑i=0nTD(Vi)

有向图中入度记为ID(v),出度记为OD(v),顶点V的度为TD(V)=ID(V)+OD(V),边数e

e=∑i=1nID(Vi)=∑i=1nOD(Vi)

  • 路径 路径的长度是路径上的边的数目或者弧的数目.
  • 回路(环)

第一个顶点到最后一个顶点相同的路径称为回路或者环。序列中顶点不重复出现的路径称为简单路径。除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或简单环。

连通图相关术语

  • 连通 & 连通图

在无向图G中,如果顶点v到顶点v’ 有路径,则称v和v’是连通的,如果对于图中任意的两个顶点vi、vj都是连通的,则G是连通图(Connected Graph)

在有向图G中,如果顶点vi到顶点vj 和顶点vj到顶点vi都存在 路径,则G是强连通图(Connected Graph)

生成树

一个连通图的生成树是一个极小的连通子图,它包含图中全部的N个顶点,但是只有足以构成一棵树的n-1条边。

版权声明:欢迎交流

时间: 2024-08-14 02:30:33

图 (上)的相关文章

Java企业微信开发_08_JSSDK多图上传

一.本节要点 1.1可信域名 所有的JS接口只能在企业微信应用的可信域名下调用(包括子域名),可在企业微信的管理后台“我的应用”里设置应用可信域名.这个域名必须要通过ICP备案,不然jssdk会配置失败 1.2JS-SDK使用权限签名算法 1.2.1 签名生成规则如下: (1)参与签名的字段包括: noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) . (2)对所有待签名参数按照字段名的ASCII

算法导论——lec 13 贪心算法与图上算法

之前我们介绍了用动态规划的方法来解决一些最优化的问题.但对于有些最优化问题来说,用动态规划就是"高射炮打蚊子",采用一些更加简单有效的方法就可以解决.贪心算法就是其中之一.贪心算法是使所做的选择看起来是当前最佳的,期望通过所做的局部最优选择来产生一个全局最优解. 一. 活动选择问题 [问题]对几个互相竞争的活动进行调度:活动集合S = {a1, a2, ..., an},它们都要求以独占的方式使用某一公共资源(如教室),每个活动ai有一个开始时间si和结束时间fi ,且0 ≤ si &

HDU 3249 Test for job (有向无环图上的最长路,DP)

 解题思路: 求有向无环图上的最长路,简单的动态规划 #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <algorithm> #include <vector> #include <cmath> #define LL long long using namespace std; const int

ZOJ 3644 Kitty&#39;s Game (图上DP 约数)

哎-这一场就做了三个题目,全队倒数第一,简直是太弱了. A Kitty's Game (ZOJ 3644) 题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3644 题意: 给出一个有向图,每个节点有一个权值pi, 有一个人从1节点出发(其权值为1节点的权值),前往n号节点,每经过一个节点,他的权值就变成了他经过这个节点前的权值和这个节点权值的最小公倍数,如果他经过这个节点后权值不发生变化则他就不能经过这个节点

微信朋友圈的图片上传,多图上传怎么去撸才合适?我们一起来实现吧!

微信朋友圈的图片上传,多图上传怎么去撸才合适?我们一起来实现吧! 图片上传是非常常见的功能,而多图上传在大多数应用中也是非常常见的,比如微信的朋友圈,微博的动态,都是有九宫格图片的,那这里肯定涉及了多图上传,所以今天我们来一起撸一下,怎么去思考这个实现逻辑! 这里我想到的思路是比较简单的,首先,我们有一个按钮,按钮是上传图片,点击之后弹出某个界面进行图片的选择,一般是九张图片或者十二张,选完之后就直接上传了,大致的流程应该是这个样子,那我们首先来写个按钮 activity_main.xml <?

HDU 2147 kiki&#39;s game(博弈图上找规律)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2147 题目大意:给你一个n*m的棋盘,初始位置为(1,m),两人轮流操作,每次只能向下,左,左下这三个方向移动,谁最后无法移动棋子就输掉比赛,问先手是否会获胜. 解题思路:简单题,P/N分析找规律,以(n,m)点为结束点推到起始点,如图: 发现每个田字格的状态都是一样的,因为(n,m)点一定时P态,所以可以得出规律:只有当(m%2==1&&n%2==1)时,先手才会输. 代码: 1 #incl

02-iOS 使用AFN 进行单图和多图上传

//1.单张图上传 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];    [manager POST:urlString parameters:params constructingBodyWithBlock:^(id_Nonnull formData) { //使用日期生成图片名称 NSDateFormatter *formatter = [[NSDateFormatter al

poj 3635 Full Tank? ( 图上dp )

题意: 已知每个点的加油站的油价单价(即点权),每条路的长度(边权). 有q个询问,每个询问包括起点s.终点e和油箱容量. 问从起点走到终点的最小花费.如果不可达输出impossible,否则输出最小的旅途费用. 算法: 其实要分析状态= =感觉就像是dp. 最直接的想法是  每到一个点都加上要走到下一个点所需要的油量.但是走的路不同,到底怎么处理加多少的问题呢? 因此想到分解状态,即拆点.每到一个点都+1单位的油量,然后把这个状态加入队列.另外如果现在油箱内的油足够达到下一点, 则更新状态,把

ThinkPHP学习(五)图上验证码

前言 不管这篇写到哪里,就以这篇作为结尾,结束这个流水回顾系列文了. Computer History Museum 计算机历史博物馆(网站)是在Google旁边,参观Google之前的行程. 记得那是一个阳光明媚的日子,在前往硅谷朝圣的路上,内心还是有点小激动的. 临走前我买了顶帽子作纪念,也刚好用来抵御湾区的大太阳. Google 大家在计算机历史博物馆外合影了一张,然后就奔赴Google了. 上图的小机器人们很有趣. Google的园区自行车很绚烂,让我联想到Chrome. 接着见识了传说

微信jssdk多图上传

微信官方文档uploadImage函数一次只能上传一张图片,但实际运用中有不少多图上传的需求 当选择多张图片时若直接循环多次调用,只有最后一张能上传成功,因为uploadImage只有在上次一执行成功或者失败以后才能再次调用,因此把该函数稍作修改即可 //选择图片function choose(num){ wx.chooseImage({ count: num, // 默认9 sizeType: ['compressed'], success: function (res) { var loca