图论_最短路
文章平均质量分 80
xuechelingxiao
这个作者很懒,什么都没留下…
展开
-
POJ 1860 Currency Exchange(最短路 Bellman-Ford)
Currency Exchange 大意:有多种货币,之间可以交换,但是需要手续费,也就是说既有汇率又有手续费。问经过交换之后能不能赚。 思路:Bellman_Ford,因为要求最长路,所以松弛条件改一下就好了。 Tips: 3 2 1 20.0 货币的数量 兑换点的数量 主人公拥有的货币量 主人公拥有货币的价值 1 2 1.00 1.00 1.00 1.00 //货币1与货币2交换时原创 2014-01-20 08:02:20 · 673 阅读 · 0 评论 -
POJ 1062 昂贵的聘礼 (最短路 Dijkstra)
昂贵的聘礼 大意:中文题#include #include #include #define INF 0x7FFFFFFF int N, M; ///物品i在有t号替代品的情况下的优惠价Map[i][t],当t=0时说明i无替代品,此时为原价 int Map[110][110]; int dis[110]; ///最初的源点0到任意点i的最初距离(权值),相当于每个物品原创 2014-01-18 16:46:31 · 649 阅读 · 0 评论 -
POJ 3259 Wormholes(最短路Bellman_Ford)
Wormholes 大意:虫洞旅行,前面一部分(n组)是双向正权,后面一部分(w组)是单向负权,判断有没有负权环。 思路:由于有负权边,就不能Dijkstra了,用Bellman_Ford。就是看图中有没有负权环,有的话可以无限次走这个环,使得时间一定能得到一个负值。所以有的存在负环话就是可以,没有的话就是不可以了。 #include #include原创 2014-01-18 09:32:17 · 1095 阅读 · 0 评论 -
POJ 2253 Frogger(最短路 Floyd)
Frogger 大意: 给出两个青蛙的坐标和其他n-2个石头的坐标,任一两个坐标点间都是双向连通的。现在要求求出所有通路的最大距离,并把这些最大距离作比较,把最小的一个最大距离作为青蛙的最小跳远距离。 思路: 先求出两两之间的最短距离,再求出每个点开始的最长路,在这些最长路中求出那个最小的。 #include #include #include原创 2014-01-18 22:20:43 · 501 阅读 · 0 评论 -
POJ 1125 Stockbroker Grapevine(最短路 Floyd)
Stockbroker Grapevine 大意:有N个股票经济人可以互相传递消息,他们之间存在一些单向的通信路径。现在有一个消息要由某个人开始传递给其他所有人,问应该由哪一个人来传递,才能在最短时间内让所有人都接收到消息。若不存在这样一个人,则输出disjoint。 思路:有向图(互相之间可能不等)中各顶点之间的最短路径问题。一个人收到消息后便开始向所有他能发送的人(原创 2014-01-19 10:51:12 · 699 阅读 · 0 评论 -
POJ 2240 Arbitrage(最短路 Floyd)
Arbitrage 大意: 给你m种货币,给你m种货币兑换规则,问通过这些规则最后能不能盈利。eg:1美元换0.5英镑,1英镑换10法郎,1法郎换0.21美元,这样1美元能换0.5*10.0.21=1.05美元,净赚0.05美元。 思路: 用Floyd找出每两种钱之间的最大兑换关系,遍历一遍,看有没有那种钱币最后能盈利,有就输出Yes,没有就是No。在处原创 2014-01-19 15:44:46 · 997 阅读 · 0 评论 -
HDU 1385 Minimum Transport Cost(Floyd 最短路 打印路径)
HDU 1385 大意: 有N个城市,然后直接给出这些城市之间的邻接矩阵,矩阵中-1代表那两个城市无道路相连,其他值代表路径长度。 如果一辆汽车经过某个城市,必须要交一定的钱(可能是过路费)。 现在要从a城到b城,花费为路径长度之和,再加上除起点与终点外所有城市的过路费之和。 求最小花费,如果有多条路经符合,则输出字典序最小的路径。 思路原创 2014-05-26 13:29:43 · 618 阅读 · 0 评论