floyd算法
big up
这个作者很懒,什么都没留下…
展开
-
uva567 floyd
题目大意: 首先写出19行,每行包含一个n,后面跟着n个数字,表示行数i与这些数字都是联通的。输完19行之后,后面跟着一个数字m,后面m行包含一个开始s和一个结束e,给出每组数据s到e的最短距离是多少。思路: 利用floyd算法。 floyd算法就是先将每两个之间的值vis[i][j]设为无穷大,如果两个点之间是有联系的就置为1,vis[i][j] =min(vis[i][j],vis[i][原创 2016-03-09 19:17:14 · 257 阅读 · 0 评论 -
uva10048 (floyd & kruskal)
题目大意: 给出两点和他们之间的噪音值,找出从起点到终点的一条路,使得这条路中噪音最大的是所有路径中最小的。思路: floyd算法: 找出一条路中噪音最大的 例如i和j之间噪音最大值是: d[i][j] = min(d[i][j],max(d[i][k],d[k][j])); 即可能是i直接到j的噪音最大或者i到j的路途中某一段的噪音最大kruskal算法: 由于该算法是按照权值一个一原创 2016-03-09 22:58:15 · 359 阅读 · 0 评论 -
uva10099 (floyd & 最大生成树)
题目大意: 有一个导游,要将游客从城市i送到城市j,有的城市之间是有公交车可以直达的,但是公交车是有限制人数的。问导游需要多少趟才能把所有的游客从城市i送到城市j。思路: 其实这道题说白了就是算从城市i到j的路径当中,要找出一条路径的最小值是所有路径最小值当中最大的。 floyd算法: d[i][j] = max(d[i][j],min(d[i][k],d[k][j]));kruskal算法原创 2016-03-10 19:27:52 · 500 阅读 · 0 评论 -
uva104 (DP + floyd)
题目大意: 给你两两国家之间的汇率,要求你从任何一个国家出发,身上带着1(单位不明),然后回到这个国家时,身上的钱能够> 1.01.并且如果这样的路径有多条的话,希望的到的是最短的路径,并且还有要求你输出这个最短的路径。思路: 利用DP去求出从i到j中间经过l个国家后所获得的金钱。 那么dp[i][j][1]表示的是从i到j国家之间的汇率, 所以dp[i][j][l] = max(dp[i]原创 2016-03-13 14:54:39 · 353 阅读 · 0 评论