最短路(Dijkstra)
来源:互联网 发布:js根据class隐藏div 编辑:程序博客网 时间:2024/04/28 19:57
给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离
有多条路线,则输出花费最少的。
输入要求:
输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数
s,t;起点s,终点t。(1
#include<bits/stdc++.h>using namespace std;int n,m;int map_len[1005][1005],map_time[1005][1005];int vis[1005],cost_len[1005],cost_time[1005];int minnum;void dijkstra(int s,int t){ int i,j,min,pos; memset(vis,0,sizeof(vis)); cost_len[s]=0; cost_time[s]=0; vis[s]=1; for (int i=0;i<n;i++) { cost_len[i]=map_len[s][i]; cost_time[i]=map_time[s][i]; } for (int i=1;i<n;i++) { minnum=100000; for (int j=0;j<n;j++) { if (cost_len[j]<minnum&&!vis[j]) { pos=j; minnum=cost_len[j]; } } vis[pos]=1; for (int j=0;j<n;j++) { if(cost_len[pos]+map_len[pos][j]<cost_len[j] && !vis[j]) { cost_len[j] = cost_len[pos]+map_len[pos][j]; cost_time[j] = cost_time[pos]+map_time[pos][j]; } else if(cost_len[pos]+map_len[pos][j]==cost_len[j] && !vis[j])//路程相同的情况下找时间少的 { if(cost_time[pos]+map_time[pos][j]<cost_time[j]) { cost_time[j] = cost_time[pos]+map_time[pos][j]; } } } }}int main(){ int a,b,d,p; int s,t; cin>>n>>m; for (int i =0;i<1005;i++) { for (int j=0;j<1005;j++) { map_len[i][j]=map_time[i][j]=100000; } map_len[i][i]=map_time[i][i]=0; } for (int i=0;i<m;i++) { cin>>a>>b>>d>>p; a-=1;b-=1; if (d<map_len[a][b]) { map_len[a][b]=map_len[b][a]=d; map_time[a][b]=map_time[b][a]=p; } } cin>>s>>t; s-=1;t-=1; dijkstra(s,t); cout<<cost_len[t]; cout<<cost_time[t]; return 0;}
阅读全文
0 0
- 最短路(dijkstra)
- 最短路(dijkstra)
- 最短路(Dijkstra)
- 最短路(Dijkstra)
- 最短路 (dijkstra )
- 最短路 (dijkstra)
- hdu2544 最短路(dijkstra)
- hdu2112-最短路(dijkstra)
- hdu2544最短路(dijkstra)
- 最短路模版(dijkstra)
- 最短路 - dijkstra - (一)
- HDUOJ_2544(最短路)(dijkstra)
- 最短路算法(dijkstra)
- poj3268(最短路,dijkstra)
- aoj2249(dijkstra最短路)
- 最短路(1)--dijkstra
- hdu5521最短路(Dijkstra)
- 最短路(dijkstra、spfa)
- memcached的CURD操作
- pgAdmin4 部署基于Centos 6.8
- servlet总结
- 异常:Stacktraces org.hibernate.TransientObjectException: The given object has a null identifier: cn.i
- WEB前端面试题
- 最短路(Dijkstra)
- Mysql同步问题
- HTTP协议和socket协议的差别及使用
- bzoj1534: [POI2005]Sum- Fibonacci sums
- Cannot return from outside a function or method
- VK Cup 2017
- 《Orange'S:一个操作系统的实现》学习笔记(1)
- 关于java 客户端链接不上redis的解决方案
- 数据结构-树的学习 (1)