Floyd算法 Floyd算法可以用来解决任意两个顶点之间的最短路径问题。 核心公式为: Edge[i][j]=Min{Edge[i][j],Edge[i][k]+Edge[k][j]}。 即通过对i,j两个顶点之间插入顶点后比较路径的大小来进行松弛。 首先我们来定义一个二维数组E...
分类:
其他好文 时间:
2014-07-23 14:45:36
阅读次数:
220
=-=感觉今天的题目好难...主要是没有碰到过,所以会觉得不懂怎么写..其实现在想想,T1,T2,T3其实都好水..T1其实没有做过还真不会,有做过的话就是个大水题了T2找最小环..超级裸的,但是自己不会打=-=T3直接FLOYD...+判断障碍物是否有在同一条线上今天按理来说只有T4会比较难一些....
分类:
其他好文 时间:
2014-07-22 22:48:17
阅读次数:
254
一次FLOYD,再枚举。注意题目要求的输出是什么哦。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int inf=9999999; 8 const int MAXN=505; 9 ...
分类:
其他好文 时间:
2014-07-22 22:32:33
阅读次数:
243
之后的题解偏重实用/总结性质,尽量理解算法本身而不是题,时间复杂度什么的也可以放放。
很久之前做过这个题,当时使用dijkstra做的,关于几个最短路算法,分类的话可以分为以下几种。
1、单源最短路:已知起点(终点),计算从源点到其他各个顶点的最短路径长度。
典型算法:Dijkstra,Bellman-Ford(可以算负的,比较慢),spfa(负权能用,加了松弛操作,速度比较炸天)
2、全...
分类:
其他好文 时间:
2014-07-21 23:27:49
阅读次数:
267
最短路问题。
题意是说:前面19行是 相邻关系,无向图,后面是询问最短。
Floyd最简单。不过我用的SPFA。其实就是求最短路,不过没有距离了,只是每次 +1 。
注意最后一行需要输出一个空行。贡献PE一发。
#include
#include
#include
#include
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-07-21 11:43:25
阅读次数:
137
多源最短路。
可用Floyd。我用的N次SPFA。
题意是说:不同的人有不同的圈子,每个人的消息传播目标和时间不同。求从每个人出发 开始传播,到其他人都收到消息的最短时间最长的最短。
每次SPFA 求出某人出发到其他人的最短距离,然后选择 最短距离中最长的。最后对比每个人所需,选择最小的。
你的任务是编写程序:选定一个经纪人,你首先将传闻散步给他(首先把传闻...
分类:
其他好文 时间:
2014-07-21 11:42:34
阅读次数:
155
感觉非常有意思,也不难想。f[i][j] |= f[i][k] & f[k][j]#include #include #include #include #include #include #include #include #include #include #include using name...
分类:
Web程序 时间:
2014-07-21 00:18:44
阅读次数:
303
f[i][j] = max(f[i][j],min(f[i][k],f[j][k]))#include #include #include #include #include #include #include #include #include #include #include #include...
分类:
其他好文 时间:
2014-07-20 22:31:27
阅读次数:
243
最短路问题。
题意是说 给你一个矩阵,是各点到各点所需费用。然后给你N个数,是每个点所需过路费。
然后输出 询问 a,b 之间所需最小费用,还有路径。
如果不是路径 必须输出 最小字典序,这题很简单,必须输出最小字典序就很恶心了。SPFA写
会很麻烦。然后我就Floyd的。把路径也一起更新就好了。
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-07-19 23:23:29
阅读次数:
322