最短路模板。
来源:互联网 发布:淘宝卖家发票怎么办 编辑:程序博客网 时间:2024/06/07 01:37
纯粹是害怕自己忘掉记一遍。
1 Floyd计算多源最短路问题。
void floyd(){ for(int i=1;i<=n;++i) //扫一遍中间点 { for(int j=1;j<=n;++j)//扫一遍起点 { for(int k=1;k<=k;++k)//扫一遍所有终点 { if(map[j][k]>map[j][i]+map[i][k]) map[j][k]=map[j][i]+map[i][k]; } } } }
2 SPFA 单源,队列
void Spfa(){ for(int i=1;i<=n;i++) { dis[i]=inf; vis[i]=0; } queue<int>que; vis[start]=1; dis[start]=0; que.push(start); while(!que.empty()) { int temp=que.front(); que.pop(); for(int i=1;i<=n;i++) { if(dis[temp]+map[temp][i]<dis[i]) { dis[i]=map[temp][i]+dis[temp]; if(vis[i]==0) { vis[i]=1; que.push(i); } } } vis[temp]=0; }}
3 dijkstra 这个我是最早接触的,但对我的幼小心灵造成很大的打击所以用的就很少。
void Dijkstra(){ for(int i=1;i<=n;i++) { dis[i]=inf; vis[i]=0; } dis[start]=0; for(int i=1;i<=n;i++) { int pos;int min=inf; for(int j=1;j<=n;j++) { if(!vis[i]&&dis[i]<min) { min=dis[i]; pos=i; } } vis[pos]=1; for(int k=1;k<=n;k++) { if(dis[k]>dis[pos]+map[pos][k]) dis[k]=dis[pos]+map[pos][k]; } }}
0 0
- 最短路模板
- 最短路模板
- poj1125最短路模板
- 最短路 SPFA模板
- 最短路 kruskal模板
- 最短路 dijkstra模板
- 最短路模板
- 最短路模板总结
- 最短路模板
- Dijkstra 模板 最短路
- 最短路模板
- 【最短路算法模板】
- 最短路模板
- 最短路 模板
- 最短路模板
- 最短路 【spfa】 模板
- 最短路算法模板
- 最短路模板
- 标准
- 同步、异步
- linux内核学习笔记---Linux 的进程控制块数据结构task_struct
- c#中判断对象为空的几种方式(字符串等)
- Job 存储和持久化 (第四部分)
- 最短路模板。
- git初体验
- Job 存储和持久化 (第五部分)
- HandlerThread、IntentService
- 2017峰会:项目管理与高级项目管理(深圳站)
- java实现spark
- Jquery 3.1.1 Syntax error, unrecognized expression: #
- 设置silverlight启用剪贴板的功能
- Android框架之Picasso和Glide的使用及区别