dijkstra algorithm解决无负权边带权有向图或向图单源最短路问题_第1页
dijkstra algorithm解决无负权边带权有向图或向图单源最短路问题_第2页
dijkstra algorithm解决无负权边带权有向图或向图单源最短路问题_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Dijkstras Algorithm解决无负权边的带权有向图或无向图的单源最短路问题贪心思想,若离s前k-1近的点已经被确定,构成点集P,那么从s到离s第k近的点t的最短路径,s,p1,p2pi,t满足s,p1,p2piP。否则假设piP,则因为边权非负,pi到t的路径0,则dpidt,pi才是第k近di=min(dpi+cost(pi,i),iP,piPdt=min(di) ,iPDijkstras Algorithm初始令ds=0,di=+,P=找到点iP,且di最小把i添入P,对于任意jP,若di+cost(i,j)dj,则更新dj=di+cost(i,j)。时间复杂度O(V2+E)D

2、ijkstra+堆的时间复杂度 o(ElgV) 用斐波那契堆可以做到O(VlogV+E)0423150200200100030001000080005000vDistv00123450100001000300025025082505250Dijkstras AlgorithmDijkstra算法也适用于无向图。但不适用于有负权边的图。231-234d1,2 = 2 但用Dijkstra算法求得 d1,2 = 3POJ3159 Candies有N个孩子(N=3000)分糖果。有M个关系(M=150000)。每个关系形如:A B C 表示第B个学生比第A个学生多分到的糖果数目,不能超过C求第N个学

3、生最多比第1个学生能多分几个糖果POJ3159 Candies有N个孩子(N=3000)分糖果。有M个关系(MB的有向边,权值为C然后求1到N的最短路用prioirty_queue实现 dijkstra + 堆的 POJ 3159 Candies/by guo wei#include #include #include #include #include using namespace std;struct CNodeint k; /端点int w; /权值,或k到已经求出最短路的那些点的最短距离;bool operator d2.w; /priority_queue总是将最大的元素出列int

4、 aDist30010;priority_queue pq;bool bUsed30010=0;/vector v30010; error,如果用这个,则在poj会超时。说明vector对象的初始化,也是需要可观时间的vectorvector v;const unsigned int INFINITE = 100000000;int main()int N,M,a,b,c;int i,j,k;CNode p, q;scanf(%d%d, & N, & M );v.clear();v.resize(N+1);memset( bUsed,0,sizeof(bUsed);for( i = 1;i = M; i + ) scanf(%d%d%d, & a, & b, & c);p.k = b;p.w = c;va.push_back( p);p.k = 1;p.w = 0;pq.push ( p);while( !pq.empty () p = pq.top ();pq.pop();if( bUsedp.k) /已经求出了最短路continue;bUsedp.k = true;if( p.k = N ) break;for( i = 0, j = vp.k.size(); i j; i + ) q.k = vp.ki.k; if( bUsedq.k )continue;q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论