
图的基础知识
czsupercar
我想成为一个有为的人。
展开
-
图的存储结构之邻接表
邻接矩阵的缺点:边数相对顶点较少的图,极大地浪费了存储空间。 把数组与链表相结合的存储方法称为邻接表。(Adjacency List) 邻接表的处理办法:顶点用一个一维数组存储(较容易读取顶点信息),每个数据元素还需要存储指向第一个邻接点的指针,以便于查找该顶点的边信息。 每个顶点的所有邻接点构成一个线性表(用单链表存储)。无向图称为顶点Vi的边表,有向图称为顶点Vi作为弧尾的出边表。...转载 2019-03-22 11:00:55 · 1052 阅读 · 0 评论 -
有向网络(带权的有向图)的最短路径Dijkstra算法
什么是最短路径?单源最短路径(所谓单源最短路径就是只指定一个顶点,最短路径是指其他顶点和这个顶点之间的路径的权值的最小值)什么是最短路径问题?给定一带权图,图中每条边的权值是非负的,代表着两顶点之间的距离。指定图中的一顶点为源点,找出源点到其它顶点的最短路径和其长度的问题,即是单源最短路径问题。什么是Dijkstra算法?求解单源最短路径问题的常用方法是Dijkstra(迪杰...转载 2019-03-28 13:09:59 · 14311 阅读 · 2 评论 -
USACO3.2.6 香甜的黄油 解题报告
【问题描述】 农夫John发现做出全威斯康辛州最甜的黄油的方法:把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。 农夫John很狡猾。像以前的巴甫洛夫,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。 ...转载 2019-03-28 14:29:53 · 730 阅读 · 0 评论 -
求有向图的强连通分量个数(kosaraju算法)
有向图的连通分量的求解思路kosaraju算法逛了很多博客,感觉都很难懂,终于找到一篇能看懂的,摘要记录一下原博客https://www.cnblogs.com/nullzx/p/6437926.html关于连通分量是什么自行百度,这里主要说明连通分量的求解方法基本思路:第一次DFS得出顶点的顺序,根据顶点顺序进行第二次DFS,也就是逆后序遍历(手动模拟一下堆栈就知道...转载 2019-04-02 16:14:29 · 11685 阅读 · 0 评论 -
tarjan算法
这个算法网上很容易找到详解,其实认真看一遍百度百科也就懂得七七八八了再附详解地址,这位博主也是转别人的,但是那个别人的博客打不开了https://blog.youkuaiyun.com/qq_34374664/article/details/77488976这个算法的核心思想:将连通分量的各个点用一个点表示。#include <iostream>#include <cst...转载 2019-04-02 16:18:09 · 133 阅读 · 0 评论 -
经典算法之拓扑排序
定义:把AOV网(用定点表示活动,用弧表示活动间优先关系的有向图)络中各个顶点按照它们互相之间的优先关系排列成一个线性序列的过程叫做拓扑排序。方法:在有向图中选一个没有前驱的顶点并且输出从图中删除该顶点和所有以它为尾的弧,即删除所有与它有关的边。重复上述两步,直至全部顶点均已输出;或者当图中不存在无前驱的顶点为止。例题:首先我们找到无前驱顶点C1和C9,我们删除掉C1,输出C1...转载 2019-05-14 13:34:29 · 808 阅读 · 0 评论 -
经典算法之关键路径
问题提出:设一个工程有11项活动,9个事件,事件V1 ----- 表示整个工程开始,事件V9 ----- 表示整个工程结束。每个事件的开始必须是它之前的活动已完成。例如:事件V2,V3,V4的开始必须是活动a1,a2,a3完成了。这时我们会关注两个问题:(1)完成整个项目需要多少时间?(2)哪些活动是影响工程进度的关键?定义:关键路径:AOE-网中,从起点到终点最长的路...转载 2019-05-16 15:10:07 · 736 阅读 · 0 评论 -
关键路径算法演示(AOE网)
如上图,是一个AOE网,点表示状态,边表示活动及其所需要的时间。为了求出关键路径,我们使用一下算法:1.求出到达各个状态的最早时间(按最大计)这个过程是要从源点开始向汇点顺推(拓扑排序):V1是源点,其最早开始时间是0。 V2、V3、V4最早时间分别是是6、4、5。 对于V5而言,V2到V5所花费时间是6+1=7,而V3到V5所花费时间是4+1=5。我们要按最大计,也就是V5最...转载 2019-05-16 15:19:43 · 502 阅读 · 0 评论