博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dijistra和Folyd模板
阅读量:5010 次
发布时间:2019-06-12

本文共 1621 字,大约阅读时间需要 5 分钟。

dijistra模板

1 void dijistra(int x){ 2     int pos = x; 3     for(int i = 1; i <= n; i ++){ 4         dist[i] = g[i][pos]; 5     } 6     vis[pos] = true; 7     for(int i = 1; i <= n; i ++){ 8         int mins = INF; 9         for(int j = 1; j <= n; j ++){10             if(!vis[j] && dist[j] < mins){11                 pos = j;12                 mins = dist[j];13             }14         }15         vis[pos] = true;16         for(int j = 1; j <= n; j ++){17             if(!vis[j] && dist[j] > dist[pos] + g[pos][j]){18                 dist[j] = dist[pos] + g[pos][j];19             }20         }21     }22 }

 

优化的dijistra模板:

1 struct edge{ 2     int to, cost; 3 }; 4 vector
g[N]; 5 typedef pair
P; // first是最短距离,second是定点的编号 6 void dijistra(int s){ 7 priority_queue

,greater

> que; 8 d[a] = 0; 9 que.push(P(0,s));10 while(!que.empty()){11 P p = que.top();que.pop();12 int v = p.second;13 if(d[v] < p.first) continue;14 for(int i = 0; i < g[v].size(); i ++){15 edge e = g[v][i];16 if(d[e.to] > d[v] + e.cost){17 d[e.to] = d[v] + e.cost;18 que.push(P(d[e.to],e.to));19 }20 }21 }22 }

 

 

Floyd模板,由于复杂度太大,很少用:

1 int d[MAX_N]d[MAX_N]; 2 int v; 3  4 void Floyd(){ 5     for(int k = 0; k < v; k ++){ 6         for(int i = 0; i < v; i ++){ 7             for(int j = 0; j < v; j ++){ 8                 d[i][j] = min(d[i][j],d[i][k] + d[k][j]); 9             }10         }11     }12 }

 

转载于:https://www.cnblogs.com/xingkongyihao/p/6817257.html

你可能感兴趣的文章
Save (Not Permitted) Dialog Box
查看>>
装饰模式(Decorator)
查看>>
3-11
查看>>
任务13:在Core Mvc中使用Options
查看>>
利用Excel 2010数据透视图实现数字的可视化的图形直观展示
查看>>
Sort Colors
查看>>
HTML文本框水印
查看>>
2048记录反查(ruby)
查看>>
用ssh整合时,用sessionfactory的getCurrentSession()获取不到session
查看>>
【Alpha版本】 第四天 11.10
查看>>
软件公司书籍推荐——按角色划分
查看>>
剑指offer和leetcode都有的_反转链表
查看>>
chrome 插件地址 知乎
查看>>
javascript全局变量都是window对象的属性
查看>>
第八届蓝桥杯省赛第七题---日期问题
查看>>
iview树的修改某个节点,树刷新后自动展开你刚才展开的所有节点
查看>>
oracle服务起不来以及无法监听问题解决
查看>>
Mvc--Html.ActionLink()的用法
查看>>
delphi 基础书籍推荐
查看>>
《面向对象程序设计》2018年春学期寒假及博客作业总结
查看>>