最短路模板
来源:互联网 发布:ios 新闻app源码 编辑:程序博客网 时间:2024/05/17 02:50
SPFA:
void SPFA(int k){ bool visit[1010]; int d[1010]; queue<int>a; int i,j; for(i=0;i<=N;i++) { d[i]=INT_MAX; visit[i]=false; } visit[k]=true; d[k]=0; a.push(k); while(a.empty()==false) { int t=a.front(); a.pop(); visit[t]=false; for(i=1;i<=N;i++) if(edges[t][i]!=0 && i!=t) { if(d[i]>d[t]+edges[t][i]) { d[i]=d[t]+edges[t][i]; if(visit[i]==false) { a.push(i); visit[i]=true; } } } }}
Floyd:
/*g[i][j]表示i到j的最短路径*/void floyd(){for(int k = 0; k < n; k++)for(int i = 0; i < n; i++)for(int j = 0; j < n; j++)if(g[i][k] < inf && g[k][j] < inf)g[i][j]=min(g[i][k] + g[k][j],g[i][j]);//从i到j经过k时的路径和直接从i到j的路径中取最小值}
dijkstra:
//节点0到n-1void dijkstra(int s){memset(visit,0,sizeof(visit));for(int i=0;i<n;i++){dis[i]=g[s][i];pre[i]=s;}visit[s]=1;while(1){int minn=1<<29,p=-1;for(int i=0;i<n;i++){if(visit[i]==0 && dis[i]<minn){minn=dis[i];p=i;}}if(p==-1)break;visit[p]=1;for(int i=0;i<n;i++){if(visit[i]==0 && g[p][i]+dis[p]<dis[i]){dis[i]=g[p][i]+dis[p];pre[i]=p;}}}}
0 0
- 最短路模板
- 最短路模板
- poj1125最短路模板
- 最短路 SPFA模板
- 最短路 kruskal模板
- 最短路 dijkstra模板
- 最短路模板
- 最短路模板总结
- 最短路模板
- Dijkstra 模板 最短路
- 最短路模板
- 【最短路算法模板】
- 最短路模板
- 最短路 模板
- 最短路模板
- 最短路 【spfa】 模板
- 最短路算法模板
- 最短路模板
- css 文本两端对齐
- 将每个分类的内容分文件夹写入
- shell程序设计(2)
- winform 获取启动项名称
- sed命令详解
- 最短路模板
- 浅月暗香
- 模拟Post向服务器发送bean
- POJ 1160 邮局
- 《算法导论》笔记 第11章 11.4 开放寻址法
- 增强for语句
- 17打开文件对话框 (SDK和MFC两种方法)
- lambda in java 8
- 报错:1130-host ... is not allowed to connect to this MySql server