最短路
文章平均质量分 76
cscoder
这个作者很懒,什么都没留下…
展开
-
POJ2240:Arbitrage
http://poj.org/problem?id=2240套汇题目,运用bellman算法解。由于要从币种A出发回到币种A,故而需要多递推一次。程序如下:#include#include#includeusing namespace std ;const int maxn = 50 ;const int maxm = 1000 ;#define max(a , b)原创 2012-04-21 18:54:09 · 269 阅读 · 0 评论 -
uva10048 - Audiophobia
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=116&page=show_problem&problem=989题意很简单,找一条路径使得,这条路上最大的噪声量最小,这题是floyd的变种,直接用Floyd算法即可。和之前的题目相同。不过这题最坑爹的是输出格式,在最后不能多输出空行原创 2012-04-21 11:30:57 · 390 阅读 · 0 评论 -
Shortest Path
hdu oj 3631 Shortest Path惭愧啊,这个题目在那天的模拟赛中竟然没有搞出来T T,学的floyd竟然白学了,看完题解才恍然大悟。。。。。。。。还有少写一个else ,让我TLE了半天题目是一个动态图,不断的给点做上标记,然后用floyd的办法去更新节点就可以了,当点被做上标记的时候,去更新其他的节点就可以了。那么容易的办法,竟然没有想出来。。。太弱了。。。原创 2012-07-18 19:41:39 · 462 阅读 · 0 评论 -
hduoj2544:最短路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544权值为正的单源最短路径问题,用dijkstra+priority_queue优化,当然也可以直接使用dijkstra。#include #include #include #include using namespace std;#define INF 1000000c原创 2012-04-04 21:36:43 · 384 阅读 · 0 评论 -
POJ2263:Heavy Cargo
http://poj.org/problem?id=2263题目是求一条能承载最重货物量的路径,只需求出最大的承载量。这题可以利用Floyd思想来解决,从i到j的路径中假设经过k,则该条路最少的承载量为min{ map[i][k] , map[k][j]},故对应的i到j的最大承载量为max{ map[i][j] , min{map[i][k] , map[k][i]}}。这样问题就可以解决了原创 2012-04-10 13:45:40 · 356 阅读 · 0 评论 -
zoj:1456Minimum Transport Cost
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1456题目大意:有N个城市,两个城市之间要么有一条运输路线,要么没有。现在有一些货物需要从一个城市运往另一个城市。运输费用包含两部分:通过两个城市之间运输线路的费用,以及通过一个城市时的纳税(起点城市和目标城市除外)。要求输出费用最小,并且路径字典需序最小的线路。这题原创 2012-03-24 15:34:23 · 427 阅读 · 0 评论 -
hduoj3790:最短路径问题
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3790这一题是一道双权值的问题,并且权值有主要与次要之分,这里我们仍采用dijkstra算法,不过在建图的时候我们需要多保存一条信息,就是第二个权值,在表示源点到目标点的代价的时候我们用一个二维数组来保存。然后更新的时候每个点仍只访问一次,可以保证最后结果的正确性,这里就不说其证明了(证明很简单)原创 2012-04-04 22:43:10 · 319 阅读 · 0 评论 -
POJ1860:Currency Exchange
http://poj.org/problem?id=1860题目类似于套汇,不过多加了一个条件,就是每次转换的时候有一定的手续费。直接用bellman-ford算法,注意数据是double类型的,所以初始化的时候,还是使用循环比较好,直接用memset函数会出错。再有就是对于更新的次数要在10000左右,开始的时候没让循环那么多次,结果wrong,改成10000之后就AC了。代码如下:原创 2012-04-09 19:26:08 · 315 阅读 · 0 评论 -
POJ2570:Fiber Network
http://poj.org/problem?id=2570题目看似与Floyd无关,但是我们可以用Floyd算法的思想去解决。在这里我们将每一位小写字母转化成对应的二进制位,刚好需要一个整型数据来保存结果,通过逻辑与或操作来完成对应位的操作。开始交的时候用g++然后用printf()输出,结果一直超时,改用putchar()后就过了,然后用将语言改为c++ 结果用printf()输出也过了,原创 2012-04-10 00:11:21 · 332 阅读 · 0 评论 -
POJ2253:Frogger
http://poj.org/problem?id=2253 这题与前面POJ2263(在我的前一篇解题报告中有)类似,都是关于Floyd解法的变种,这个需要注意的就是递推式如下:temp = max { map[i][k] , map[k][j]} , map[i][j] = min{temp , map[i][j]} 。map[i][j]表示的是从i到j的所有路径的最大距离的最小值原创 2012-04-10 14:54:01 · 333 阅读 · 0 评论 -
POJ3268:Silver Cow Party
http://poj.org/problem?id=3268这题求最短时间,直接用两次bellman-ford的队列优化算法spfa即可,需要先算从x回到起点的最短时间,然后再算往程的时间,因为需要对图进行对称翻转。看源代码:#include #include #include #include using namespace std ; #define INF 10000原创 2012-04-09 20:41:58 · 263 阅读 · 0 评论