弗洛伊德算法和迪杰斯特拉算法类似,是计算一个图中各个顶点之间的最短路径,每一个顶点都是出发顶点 记录两个顶点的距离,如果有经过某一顶点所得到的距离比直接连接这两个顶点的距离小则更新,否则不变 实现为:使用双层循环当中间顶点不变,出发和终点的点进行循环,最后使用一层循环更新中间顶点,总共使用三层循环, ...
分类:
编程语言 时间:
2020-02-28 11:43:52
阅读次数:
56
http://47.95.147.191/problem/P3规定边数的最短路,跑floyd+矩阵快速幂 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> #include< ...
分类:
Web程序 时间:
2020-02-26 19:10:33
阅读次数:
101
1965年dijkstra提出了一个关于进程同步问题,大致意思如下: 有5个哲学家坐在一张圆桌上,每个哲学家左右两边各有一个叉子。 只有当集齐两个叉子,才能够吃饭,否则哲学家就得乖乖去思考。 桌子上就5个叉子,理论上同时可以让两个哲学家进餐,那么怎么用两个进程来模拟这个状态呢? 0x001 这几个哲 ...
分类:
其他好文 时间:
2020-02-23 18:07:46
阅读次数:
65
Dijkstra算法适用范围是单源最短路,有向图或者无向图,不能处理负权值 Floyd算法适用多源最短路,有向图或者无向图,可以处理负权值但是不能处理负权回路 Ford 算法多源最短路,可以处理负权值,能检测负权回路 Leetcode 743. 网络延迟时间 先用Dijkstra算法解,输入是vec ...
分类:
编程语言 时间:
2020-02-23 11:55:45
阅读次数:
90
L2-001 紧急救援 题意:就是给你一张n<500的图;让你求最短路径,最短路条数,以及路径; 做法,先用dijkstra求最短路,然后dfs找最短路条数,以及点权的最大值; 一般dfs不就可以解决这个问题吗,像n皇后求次数,注意回溯即可; 那如何dfs确定这条路是最短路径呢?贪心思想,枚举每一个 ...
分类:
其他好文 时间:
2020-02-22 20:14:25
阅读次数:
120
1178 H. Stock Exchange 题意: 有$2n$只价值随时间线性变化的股票,即价值为$a_it+b_i(i=1,\cdots,n)$.初始时刻持有$1$到$n$各一份,在整数时刻可多次交易,每次交易可将一份股票换成在当前价值更低的任意一份,可以同时持有多份同种股票,目标是持有$n+1 ...
分类:
其他好文 时间:
2020-02-22 12:19:21
阅读次数:
70
求最短路暂时掌握了4种,但感觉就dijkstra复杂度能用; 1 floyd算法: 就是暴力的三重循环,以每个点为中转点,每次遍历所有的点,看看能不能通过这个中转点更新最短路径; 优点:n<200时用这种方法,用邻接矩阵存图 ,可求任意的两点的最短路;而且好写; 缺点:复杂度太高,O(n^3)的复杂 ...
分类:
编程语言 时间:
2020-02-22 10:16:39
阅读次数:
71
算法的详情就不讲了. 解决的是单源最短路径问题,具体就是一个源点到众多其他结点的距离是否有最短路,且为多少? 本质就是按照长度递增次序产生最短路径. 为何长度递增就能产生最短路呢? 原因在于算法本身是基于贪心思想.每一阶段都试图找寻还未确定的点中最有"潜质"的点. 按照的长度递增的战略思路.这是极为 ...
分类:
编程语言 时间:
2020-02-22 00:15:58
阅读次数:
96
题目:传送门 题意: 给你 n 条线段的两个端点, 然后有多次询问, 每次询问, 问你线段 x 和 线段 y 是否相交。 若线段 A 和线段 B 相交且线段 A 和线段 C 相交,那么线段 B 和线段 C 相交。 1 < n < 13 题解: 暴力求线段是否相交, 然后再跑个 Floyd 或者并查集 ...
分类:
其他好文 时间:
2020-02-21 16:34:06
阅读次数:
77
"P1613 跑路" 预处理出所有一次能到的节点,然后floyd ...
分类:
其他好文 时间:
2020-02-21 16:16:34
阅读次数:
73