九度教程77 dijkstra算法之《单源最短路径》
来源:互联网 发布:新能源汽车销量数据 编辑:程序博客网 时间:2024/06/07 03:21
题目地址:http://ac.jobdu.com/problem.php?cid=1040&pid=76
//九度教程77 dijkstra算法之《单源最短路径》//http://ac.jobdu.com/problem.php?cid=1040&pid=76#include<stdio.h>#define MAXN 1047483640//typedef struct E{int min;int spend;}E;E mm[1001][1001],value[1001];int main(){int a,b,i,j,n,m,k,s,t,temps,tempm;while(~scanf("%d %d",&n,&m)&&n){for(i=0;i<=n;i++){flag[i]=1;//1为还没进集合,0为已进集合value[i].min=value[i].spend=MAXN;for(j=0;j<=n;j++)mm[i][j].min=mm[i][j].spend=MAXN;}for(i=0;i<m;i++)//读入m条边{scanf("%d %d",&a,&b);scanf("%d %d",&tempm,&temps);if(a==b||tempm>mm[a][b].min||tempm==mm[a][b].min&&temps>=mm[a][b].spend)continue;//考虑自环及重边。无视自环及权值较大的重边mm[a][b].min=tempm;mm[a][b].spend=temps;mm[b][a]=mm[a][b];}scanf("%d %d",&s,&t);flag[s]=0;//初始只包含s这个结点集合value[k=s].min=value[s].spend=0;//起始点的最短路min为0,花费spend为0;k初值为起始点s。while(k!=t){for(i=k,j=1;j<=n;j++){if(j==k)continue;if(value[j].min>value[k].min+mm[k][j].min){value[j].min=value[k].min+mm[k][j].min;value[j].spend=value[k].spend+mm[k][j].spend;}else if(value[j].min==value[k].min+mm[k][j].min){if(value[j].spend>value[k].spend+mm[k][j].spend)value[j].spend=value[k].spend+mm[k][j].spend;}}for(k=1;flag[k]==0;k++);//把k指向某一个未被包含的顶点,为了下步做准备。for(i=1;i<=n;i++){if(flag[i]&&(value[k].min>value[i].min||value[k].min==value[i].min&&value[k].spend>value[i].spend))k=i;}flag[k]=0;//设置已把k包含进来的标志}printf("%d %d\n",value[k].min,value[k].spend);}return 0;}
- 九度教程77 dijkstra算法之《单源最短路径》
- //九度教程78 dijkstra算法之单源最短路径
- 单源最短路径之Dijkstra算法
- 单源最短路径之Dijkstra算法
- 单源最短路径之dijkstra算法
- 九度OJ1008-最短路径问题 之 dijkstra算法的理解与实现
- 【算法导论】单源最短路径之Dijkstra算法
- 算法与数据结构-单源最短路径之Dijkstra
- 单源最短路径问题之Dijkstra算法详解
- 贪心算法之单源最短路径Dijkstra
- 单源最短路径 dijkstra算法
- 单源最短路径Dijkstra算法
- Dijkstra 单源最短路径算法
- 单源最短路径 :Dijkstra 算法
- 单源最短路径(Dijkstra算法)
- 单源最短路径----------Dijkstra算法
- 单源最短路径Dijkstra算法
- 单源最短路径(Dijkstra算法)
- Firebug入门指南
- MySQL常用命令内容
- 吉布斯现象
- skip_unusable_indexes参数对不可见索引的影响
- 使用vs2010连接微软云端团队工具
- 九度教程77 dijkstra算法之《单源最短路径》
- 教你写MySQL UDF
- android虚拟机快捷键
- 新词发现
- D3D中的渲染到纹理
- jqGrid 各种参数 详解
- 用VS2005打开VS2008建的解决方案
- GCC 参数详解
- MySQL中字符集改为utf8