最短路径
文章平均质量分 78
在路上-小武
这个作者很懒,什么都没留下…
展开
-
BellmanFord算法框架
本文转自http://blog.csdn.net/p569354158/article/details/7379778#define V 9 /*顶点数*/#define E 12 /*边数*/const int inf = 0x3f3f3f3f;int n,m,pre[V];struct Edge{ int u; int v;转载 2012-07-12 12:13:43 · 267 阅读 · 0 评论 -
hdu 1596 find the safest road
最短路径变形,这就直接说明了最短路径本质是贪心,所以最短路径不仅限于求“最短”的路径,它还可以求最长路径,求最值等等Problem DescriptionXX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…原创 2012-07-28 09:34:02 · 451 阅读 · 0 评论 -
最短路径 Dijkstra算法 杭电2544
开始因为错写了m和n,runtime error了几次,用Dijkstra算法时,循环中应该是点的数目,也就是n,而不是m注意该题是无向图#include#includeusing namespace std;#define data 100000000//注意取值,100000000才可以通过,其他的是runningint map[105][105];int dis[105];原创 2012-07-11 16:42:22 · 397 阅读 · 0 评论 -
hdu 4318 最短路问题
比赛没写出来耻辱啊!又看了看邻接表,懂了之后写的。当时因为是50001个数据,如果临街矩阵的话肯定mle,只能用到邻接表,我当时邻接表不是很熟,觉得写不出来就没有写题意:大致表述为从节点s向节点t传送电力,电力在传送过程中会有所消耗,不同节点之间,电力传送消耗的值有所不同。要求选择一条使得电力消耗最小的线路。如果不能把电力从s点传送到t点,或者电力损失殆尽,则输出IMPOSSIBLE!原创 2012-07-29 17:07:50 · 571 阅读 · 0 评论 -
Dijkstra算法 hdu2066适当剪枝减少时间,注意起始节点和目标节点!!!
无向图#include#include#define max(a,b) ((a)>(b)?(a):(b))#define data 100000000int map[1100][1100];int dis[1100];int vis[1100];int arr[1100];//保存起始节点,也就是她家临近的城市int c[1100];//标记目标节点int main(){原创 2012-07-11 18:47:08 · 410 阅读 · 0 评论 -
hdu 1690 floyd算法用的好纠结,应该注意范围
此题用floyd最好,因为是任意两点!!!纠结啊,因为范围问题一直Compilation Error 后来范围定了一直超时,最后才发现晕的把函数放到循环里面了,这不影响结果,可是严重超时!!!Problem DescriptionBecause of the huge population of China, public transportation is very import原创 2012-07-12 16:44:16 · 555 阅读 · 0 评论 -
hdu 3790 最短路径问题(最短路径+最小费用)
思路:最小的费用跟最短路径有直接关系,所以处理最小费用的方法跟处理最短路径的方法一样,在更新最短路径的时候去更新最小费用,就像最短路径要记录map[][],要更新dis[]一样,最小费用维护一个二维数组和一个一维数组,money[][]和mon[],跟最短路径同时更新,这是很好的想法!!! Problem Description给你n个点,m条无向边,每条边都有长度d和花费p,给原创 2012-07-31 17:50:48 · 1336 阅读 · 1 评论 -
hdu 1548 A strange lift
用bfs可以,个人觉得dfs应该很麻烦!觉得用最短路径更好理解,也容易实现,对点做预处理,用队列把有关点之间的权值设置成1,这样再用最短路径求解Problem DescriptionThere is a strange lift.The lift can stop can at every floor as you want, and there is a number Ki(0 <=原创 2012-07-31 16:34:32 · 352 阅读 · 0 评论 -
hdu 1217 Arbitrage
相当于求最大路径,用到了map映射Problem DescriptionArbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For example,原创 2012-07-31 13:31:34 · 414 阅读 · 0 评论 -
hdu 2680 Choose the best route(注意有向图的处理)
注意该题的处理方式,把终点当做原点,用一个数组去标记原来的起点,但是注意这是有向图,对于map[][]必须是有向,因为终点和起点换了位置,所以map[][]跟输入恰好相反Choose the best routeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota原创 2012-07-28 09:24:28 · 382 阅读 · 0 评论 -
hdu 1874 畅通工程续
注意从0开始,计算时应计算dis[y],y是终点,如果防止错,所有的输入可以加上1,表示从1开始#include#include#define data 1000000int map[1100][1100];int dis[1100];int vis[1100];int main(){ int n,m,p,i,j; while(scanf("%d%d",&n,&m)!=EOF原创 2012-07-11 19:28:48 · 294 阅读 · 0 评论 -
ballmanford 比较好的理解方式
本文转自http://blog.csdn.net/bill_ming/article/details/7628435假设存在最短路径的话,那么我们只要将这条最短路径沿着权值为负的环路在绕一圈,那么这条最短路径的权值就会减少了,所以不存在最短的路径,因为路径的最小值为负无穷一般形式:typedef struct Edge{ int u,v,w;} edge[N];boo转载 2012-07-15 12:25:11 · 495 阅读 · 0 评论 -
最短路径 floyd算法
本文出自http://www.cnblogs.com/luochen2010/archive/2011/12/03/2274496.html能力有限,今天只是研究了两种fioyd和Dijkstra算法,还有一个BellmanFord得明天接触了,下一篇是c写的最短路径floyd算法部分内容参考 http://leon.cc.blogbus.com/logs/3629782.html转载 2012-07-11 19:40:15 · 1034 阅读 · 0 评论 -
hdu 2544 对memset()缺乏认识
1,定义时,如果用0x3f3f3f3f 下面对map赋值时可以用memset(map,data,sizeof(map)),如果定义成了100000000,则下面赋值应该用循环赋值#include#include#define data 0x3f3f3f3f int map[105][105];int n,m;int floyd(int x,int y){ for(原创 2012-07-12 10:54:44 · 344 阅读 · 0 评论 -
最短路径之 BellmanFord算法
#includeusing namespace std;const int oo=1000000;int n,m;//n为点的个数 m为边的条数int begin,end;//begin为起始点 end为结束点struct bian{ int a,b; int w;}*E;int *D;int Ford(){ int转载 2012-07-12 11:55:35 · 321 阅读 · 0 评论 -
hdu 1690 可以用ballmanford算法,不过就是时间长点
//开始的时候在ford()函数中多加了两个等于号,tlr#include#define data 99999999999lllong long map[101][101],dis[101],ans;int arr[101];int l1,l2,l3,l4,c1,c2,c3,c4,n1,m1,d;long long int ford(int n1,int aa,int bb){原创 2012-07-15 11:29:44 · 429 阅读 · 0 评论 -
SPFA 算法
求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm。 从名字我们就可以看出,这种算法在效率上一定有过人之处。 很多时候,给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 简洁起见,我们约定有向加权图G不存在负权回路,即最短路径一定存在。当然,我原创 2012-07-16 08:16:51 · 406 阅读 · 0 评论 -
SPFA模版
本文转自http://blog.csdn.net/candy20094369/article/details/6717282SPFA算法模板1:(邻接矩阵)const int nMax = 1000; // 顶点的数量上限。const int eMax = 2000; // 边的数量上限。const int inf = 0xffffff; i转载 2012-07-16 09:37:36 · 531 阅读 · 0 评论 -
hdu HDU Today(跑的太慢了!什么情况?优先队列优化之后也那么慢!二百多怎么跑的?)
Problem Description经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强。这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市浬浦镇陶姚村买了个房子,开始安度晚年了。这样住了一段时间,徐总对当地的交通还是不太了解。有时很郁闷,想去一个地方又不知道应该乘什么公交车,在什么地方转车,在原创 2012-08-02 14:56:32 · 494 阅读 · 0 评论 -
hdu 1599 find the mincost route(找无向图最小环)
注意!这里写成 #define data 0x3f3f3f3f memset(map,data,sizeof(map))是wrong 按理来说应该不错,郁闷,以后还是循环赋值然后宏定义#define data 100000000Problem Description杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过原创 2012-08-01 19:00:45 · 1775 阅读 · 2 评论