码迷,mamicode.com
首页 > 其他好文 > 详细

模板:最短路

时间:2017-10-14 16:47:22      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:问题   []   ons   empty   make   color   ++   int   tor   

 1 //Floyd:(任意两点间的最短路问题)
 2 for(int k=0;k<n;k++)
 3 for(int i=0;i<n;i++)
 4 for(int j=0;j<n;j++)
 5 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
 6 
 7 //Dijkstra(无负边时的最短路问题) 
 8 const int INF=0x3f3f3f3f;
 9 const int N=111111;
10 
11 vector < pair<int,int> > E[N];
12 int n,m;
13 int d[N];
14 
15 void init(){
16     for(int i=0;i<N;i++) d[i]=INF;
17     for(int i=0;i<N;i++) E[i].clear();
18 }
19 
20 void dijkstra(int s,int d[]){
21     priority_queue <pair<int,int> > Q;
22     d[s]=0;
23     Q.push(make_pair(-d[s],s));
24     
25     while(!Q.empty()){
26         int now=Q.top().second;
27         Q.pop();
28         for(int i=0;i<E[now].size();i++){
29             int v=E[now][i].first;
30             int D=d[now]+E[now][i].second;
31             if(d[v]>D){
32                 d[v]=D;
33                 Q.push(make_pair(-d[v],v));
34             }
35         }
36     }
37 }

 

模板:最短路

标签:问题   []   ons   empty   make   color   ++   int   tor   

原文地址:http://www.cnblogs.com/Leonard-/p/7667423.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!