自然语言描述 1. 定义三个数组,分别为 2. 设v0为起始点,若与v0直接连接的vi,则记录其权值到D[i],否则记录∞到D[i]; 3. 循环下列语句直至V S为空集: (1)遍历D中的数据,若D[i]为最小值;记录vi到S中 (2)更新D中的数据(遍历vj∈(V S), D[ j ] = MI ...
分类:
编程语言 时间:
2020-05-19 12:53:52
阅读次数:
69
网络流常见建图套路总结(重制版) [TOC] 前置知识 1. 网络流的基本算法:Dinic最大流,EK+SPFA求费用流 2. 最小割,最小割最大流定理 3. 二分图判定,匹配,相关性质 4. 常见最短路径算法:Dijkstra,SPFA,Floyd 最大流 二分图最大匹配与多重匹配 定义: 二分图 ...
分类:
其他好文 时间:
2020-05-18 21:08:15
阅读次数:
72
思路分析:其实我们在很久之前曾经做过一道类似的题,那道题要求我们求的是经过k个点的最短路,我们在那道题用的是矩阵乘法和Floyd,这道题问的我们是经过k个点的路径一共有多少条,我们可以用类似的方法进行计算,我们设在两点a,b之间到中间点c的路径分别有x,y条,那么我们从a到b的路径就一共有x*y条, ...
分类:
其他好文 时间:
2020-05-18 18:29:43
阅读次数:
55
本问题被称为 荷兰国旗问题,最初由 Edsger W. Dijkstra提出。其主要思想是给每个数字设定一种颜色,并按照荷兰国旗颜色的顺序进行调整。 我们用三个指针(p0, p2 和curr)来分别追踪0的最右边界,2的最左边界和当前考虑的元素。 本解法的思路是沿着数组移动 curr 指针,若 nu ...
分类:
其他好文 时间:
2020-05-18 12:51:10
阅读次数:
143
进程同步、进程互斥的两种机制,这里简单总结是其中的信号量机制(Semaphores)。 建议: 不少概念涉及到进程同步的内容,所以查看这个内容时可以结合或提前参考进程同步的内容, 信号量机制是 荷兰学者 Dijkstra 提出的,这是一种卓有成效的进程同步工具。发展:整型信号量->记录型信号量->A ...
分类:
系统相关 时间:
2020-05-18 00:52:08
阅读次数:
113
算法简述 SPFA算法其实是bellman-ford算法的队列优化形式,不再是简简单单的进行n-1次松弛,而是使用队列,能使路径变短(dist[y] > dist[x] + 1)且不在队列里的节点才入队进行松弛。 SPFA算法与Dijkstra算法的堆优化实现形式差不多,都是使用邻接表的方式。 代码 ...
分类:
编程语言 时间:
2020-05-16 21:02:59
阅读次数:
88
题目 https://www.luogu.com.cn/problem/P1144 题目分析 注意相同距离的最短路径条数的判断!(使用数组!) 代码 Dijkstra+堆优化 #include<iostream> #include<cstdio> #include<algorithm> #inclu ...
分类:
其他好文 时间:
2020-05-16 20:42:07
阅读次数:
92
Dijkstra算法 由于我之前一直记的迪杰斯特拉的翻译导致我把dijkstra写成了dijstra……所以下文#define dijstra dijkstra Dijskra是用来在有向图或者无向图中寻找任意两个点的最小距离的算法。它相较于spfa不会死掉(spfa死了),但是无法处理带负环的图和 ...
分类:
其他好文 时间:
2020-05-14 22:32:12
阅读次数:
91
算法简介 二分查找 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将 ...
分类:
编程语言 时间:
2020-05-11 23:43:48
阅读次数:
96
1. poj 2139 题意 奶牛们最近要拍电影了…… 1、若两个的奶牛一起工作则,他们相互的度(degrees)为; 2、若两只奶牛a、b不一起工作,但与另有一只奶牛都和他们工作,则a、b的相互的度为2。 求奶牛的与其他奶牛的度的平均值的100的整数。 思路 这个题用floyd算法最为合适; // ...
分类:
其他好文 时间:
2020-05-10 01:15:22
阅读次数:
56