
最短路
yueqiq
这个作者很懒,什么都没留下…
展开
-
Dijkstra算法详解
在图的应用中,有一个很重要的需求:我们需要知道从某一个点开始,到其他所有点的最短路径。 这其中,Dijkstra算法是典型的最短路径算法。它的关键思想是以起始点为中心,向外一层层扩散,直到扩展到终点为止。Dijkstra算法能够得出最短路径的最优解,不过它需要遍历计算的节点相当多,所以效率不高。 首先,用最通俗的语言解释。假定有3个顶点,A、B、C,如图:转载 2012-06-10 15:27:11 · 614 阅读 · 0 评论 -
usaco Cow Tours
看题目说只有两个牧场,就想当然的以为每个牧场内两两联通,结果就暴力分成两个set,然后对每个set求floyd求最短路,结果发现数据中有全部不联通的这种数据,无奈参考标程使用并查集,代码忘记保存了,就不发了。。。。‘code:这是标程#include #include #include #include #include const int maxn = 175;const原创 2012-08-23 17:10:21 · 366 阅读 · 0 评论 -
usaco Bessie Come Home
很裸的最短路问题,就是输入格式比较怪异,不过也还好。。。。code:/* ID:yueqi LANG:C++ TASK:comehome*/#include #include #include #include #include #include #include #include #include #include #include #i原创 2012-08-23 19:58:14 · 482 阅读 · 0 评论 -
poj3026 Borg Maze
这道题贡献了2次wa,最后原因是因为A有100个,而S有一个,所以共有101个点,数组应该开到102,而我只开到了101...........坑爹啊code/*ID: yueqiqPROG: numtriLANG: C++*/#include #include #include #include #include #include #include #include原创 2012-07-30 10:09:58 · 387 阅读 · 0 评论 -
poj 1860 Currency Exchange
题意: 有N种 货币,M个交易所,每个交易所互换两种货币,问给你第s种货币,你能否让它越换越多其实就是找一条能够让他增值的正权回路,这个 用bellman-Ford,spfa 几乎都能做,不过我没试过说一下思路:用bellman-Ford,在dis[S]没有增值的情况下进行反向松弛(就是放大);如果不能松弛了就退出来看一下有没有放大就可以了;(这样可以不用判断负环)用spfa,思路原创 2012-06-24 14:52:13 · 358 阅读 · 0 评论 -
poj 2253 Frogger
求所有路径中最大权值最小的那个权值,说是最短路,其实我觉得还是使用了动态规划的思想每个dis[i][j]中存储的是当前路径的最大权值(保证了这个值的最小性),那么就运用求flyod最短路的思想,通过两个点的dis[i][j]可以从通过一个点的dis[i][j]递推出来,最后存在dis[1][2]中的就是最终答案code#include #include #include #inc原创 2012-06-25 09:28:31 · 322 阅读 · 0 评论 -
poj2240 Arbitrage
跟poj1860类似 判断是否存在正环,bellman-ford每个点做一次正环判断,刚开始以为每种货币都要能升值,错了,后来又因为case后面少打了个空格 晕code#include #include #include #include #include #include #include #include #include #include #include #i原创 2012-08-02 19:03:37 · 337 阅读 · 0 评论 -
poj 1125-Stockbroker Grapevine
事实证明 ,我只能切水题, floyd的循环抽时间得搞明白啊啊啊/*ID : Your IDLANG : C++PROB : namenum*/#include #include #include #include #include #include #include #include #include #include #include #include #原创 2012-06-24 01:41:44 · 313 阅读 · 0 评论 -
poj 3463 Sightseeing
题意:旅行团每天固定的从S地出发到达T地,为了省油要求尽量走最短路径或比最短路径长1单位距离的路径,求满足条件的路径条数这是一次对dijstra的深刻理解 ,好吧......不会做,参考大神思路因为有重边,所以不能使用邻接矩阵(真的不是因为存不下.....),然后为了减少代码复杂度,使用了链式前向星struct Edge{ int v, next, w;}Graph[maxn原创 2012-06-23 17:11:21 · 457 阅读 · 0 评论 -
poj 1062 昂贵的聘礼
嗯 poj上很少见的中文题目,不会做,参考了别人的思路,这里就不写了,地址是http://www.cnblogs.com/lyy289065406/archive/2011/07/30/2121678.html写的很详细了,code#include #include #include #include #include #include #include #include原创 2012-06-24 23:35:35 · 285 阅读 · 0 评论 -
poj 3259 Wormholes
题意 :该死的FJ发现了时光倒流虫洞,问能不能看见过去的自己........其实就是判断有没有负权回路,over了code:#include #include #include #include #include #include #include #include #include #include #include #include #include #i原创 2012-06-24 15:44:32 · 265 阅读 · 0 评论 -
hdu 1874 畅通工程续
注意此题可能有重边,所以注意把重边消掉;code#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define Si原创 2012-06-11 14:45:51 · 294 阅读 · 0 评论 -
hdu 2544 最短路
这道题来得更加赤裸裸.,连题目都这么赤裸裸,纯属熟悉代码code#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #d原创 2012-06-11 16:06:35 · 320 阅读 · 0 评论 -
hdu 2066 一个人的旅行
我觉得这题应该用floyd算法会更好一点吧,(猜的,还没学,囧......)我是用dijstra暴力水过..........,嗯开始学floydcode#include #include #include #include #include #include #include #include #include #include #include #include原创 2012-06-13 09:08:34 · 777 阅读 · 0 评论 -
poj 2502 Subway
做的第一道图论题,用的是Dijkstra单源最短路算法,给我带来了无比沉痛的回忆啊!!!!WA了20+次,不知道错在哪里,最后换C++交,竟然AC了,poj各种坑啊找的原因了 ,G++在poj上不能用%lf 而应该是%f下面是code: 顺便求解。。。。。#include #include #include #include #include #include原创 2012-06-10 17:16:56 · 495 阅读 · 0 评论 -
hdu1142 A Walk Through the Forest
这题刚开始思考了半天却没想到什么好的办法,最后看了解题报告,发现我从一开始就没有记忆化搜索这方面的想法,我想到了求出每个点到终点的最短路,却没想到用记忆花搜索来解决路径条数思路:最短路+记忆化搜索code:#include #include #include #include using namespace std;const int INF = 0x3fffffff;in原创 2012-09-03 15:56:15 · 377 阅读 · 0 评论