这题竟然没有题解,那我就来发一篇吧。 第一眼看到这题:最小环?什么鬼!用 SPFA 好像很麻烦欸。然后一看数据:$1\leq n\leq 100$。好吧这题用邻接矩阵和 floyd 就能过。 floyd 是一种动态规划求最短路径的方法,代码极短,并且很好理解(代价就是在最短路径算法中无人能敌的 $\ ...
分类:
其他好文 时间:
2020-05-09 20:52:28
阅读次数:
59
Til the Cows Come Home "POJ 2387" 这题是最简单的最短路求解题,主要就是使用dijkstra算法,时间复杂度是$O(n^2)$. 需要注意的是,一定要看清楚题目的输入要求,是先输入边,再输入顶点,一开始我没看清,wrong answer了一次。 ...
分类:
其他好文 时间:
2020-05-09 20:41:51
阅读次数:
53
参考链接 Dijkstra算法 算法特点: 迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。 算法的思路 Dijkstra算法采用的是一种贪心的策略,声明一个数组dis来保存源点到各个顶点的最短 ...
分类:
其他好文 时间:
2020-05-08 21:21:39
阅读次数:
90
看得出题目的直径也就是任意两点之间最短路的最大值,因此这是个多源汇最短路 而连接两个独立的区域,就需要取到最小值,然后跟每个集合的最大值进行取max #include<iostream> #include<string> #include<algorithm> #include<cmath> #de ...
使用floyd求取传递闭包,每次都进行判断 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=27; int g[N][N]; bool st[N]; int n,m; int d[N][N] ...
分类:
编程语言 时间:
2020-05-05 10:52:48
阅读次数:
62
图的最短路径&最小生成树的以点为中心思想的算法总结 在图的常见问题中,求最短路径和图的最小生成树问题最为常见。而关于这两种问题,有一种算法思想可以用几乎相同的代码解决两种不同的问题。 这种算法思想的基础基于点,分别对应了最短路径问题中的Dijkstra算法和最小生成树问题中的prim算法。 这种算法 ...
分类:
编程语言 时间:
2020-05-05 00:44:07
阅读次数:
64
概论 在 深度优先搜索原理与实践(java)文章介绍了深度优先搜索算法的理论和实践。本文将介绍与其原理类似的广度优先搜索算法。 广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历算法这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生 ...
分类:
其他好文 时间:
2020-05-04 22:59:52
阅读次数:
76
1 Floyd-warshall(A) 2 C<-A 3 for k<-1 to n 4 do for i<-1 to n 5 do for j<-1 to n 6 do if Cij>Cik+Ckj 7 then Cij<-Cik+Ckj ...
分类:
编程语言 时间:
2020-05-04 13:10:01
阅读次数:
78
BUCT2020春季学期ACM周赛 11 A 冲浪游戏(cf 900) 思路 贪心,本题考虑求解最小的扣款钱数,所以容易想到本体题按扣款的钱数从大到小排序(尽可能把扣款最多的游戏放到执行队列中,以减少扣款钱数),那么在按顺序遍历每个游戏,考虑游戏的执行时间,将当前游戏放到截止时间之前的时间段的最后一 ...
分类:
其他好文 时间:
2020-05-03 21:34:29
阅读次数:
76
Floyd算法 弗洛伊德算法,用来计算多源最短路径(任意两个点之间的最短路径) 符号描述 D(i,j) 节点i到节点j的最短距离 N(i,j) 节点i到节点j的下一跳节点 思维 1. 如果某个节点位于起点到终点的最短路径上 D(i,j)=D(i,k)+D(k,j) 2. 如果某个节点不位于起点到终点 ...
分类:
编程语言 时间:
2020-05-03 12:25:28
阅读次数:
59