最短路径问题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 29549    Accepted Submission(s): 8761

Problem Description
给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。
Input
输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点。n和m为0时输入结束。
(1<n<=1000, 0<m<100000, s != t)
Output
输出 一行有两个数, 最短距离及其花费。
Sample Input
3 2 1 2 5 6 2 3 4 5 1 3 0 0
Sample Output
9 11
Source
浙大计算机研究生复试上机考试-2010年
Recommend
notonlysuccess   |   We have carefully selected several similar problems for you:  2544 2066 1217 2112 1142 
分析:基础的最短路问题,在路径长度相同的情况下,要多更新一下价格。
另外要注意的是有重边
代码如下:
#include <cstdio>
#include <iostream>
#include <cstring>
#include <map>
#include <algorithm>
using namespace std;
#define INF 0x3f3f3f3f
int path [1010][1010];
int cost[1010][1010];
int s,t,n,m,u,v,val,long1;
int dis[1010];
int co[1010];
int vis[1010];
void djs(int s,int t)
{fill(co,co+n+1,INF);fill(dis,dis+n+1,INF);co[s]=0;dis[s]=0;while(1){int u=-1;for(int i=1;i<=n;i++)if(!vis[i]&&(u==-1||dis[i]<dis[u]))u=i;if(u==-1)break;vis[u]=1;for(int i=1;i<=n;i++){if(path[u][i]==-1)continue;if(dis[i]>dis[u]+path[u][i]){dis[i]=dis[u]+path[u][i];co[i]=co[u]+cost[u][i];}else if(dis[i]==dis[u]+path[u][i])co[i]=min(co[i],co[u]+cost[u][i]);}}
}
int main()
{while(scanf("%d%d",&n,&m)!=EOF){if(n==0&&m==0)break;memset(path,-1,sizeof(path));memset(cost,-1,sizeof(cost));memset(vis,0,sizeof(vis));for(int i=0;i<m;i++){scanf("%d%d%d%d",&u,&v,&long1,&val);if(long1<path[u][v]||path[u][v]==-1){path[u][v]=long1;cost[u][v]=val;path[v][u]=long1;cost[v][u]=val;}}scanf("%d%d",&s,&t);djs(s,t);printf("%d %d\n",dis[t],co[t]);}return 0;
}

转载于:https://www.cnblogs.com/a249189046/p/7488776.html

HDU 3790 最短路径问题 (dijkstra)相关推荐

  1. hdu 3790(最短路径问题 SPFA算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3790 最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    ...

  2. HDU 3790 最短路径问题 裸跑dijkstra

    原题: http://acm.hdu.edu.cn/showproblem.php?pid=3790 题目: 最短路径问题 Time Limit: 2000/1000 MS (Java/Others) ...

  3. hdu 3790 最短路径dijkstra(多重权值)

    最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  4. hdu 3790 最短路径问题

    最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  5. HDU 3790 最短路径问题

    最短路径问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  6. HDU - 3790 最短路径问题

    给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的. Input输入n,m,点的编号是1~n,然后是m行 ...

  7. HDU 3790 最短路径问题 (SPFA)

    转载请注明出处:http://blog.csdn.net/a1dark 分析:比一般最短路多了一个花费.多加一个判断即可.用的SPFA.这道题让我搞清楚了以前定义INF为啥爆的问题.受益颇多. #in ...

  8. 最短路径算法——Dijkstra,Bellman-Ford,Floyd-Warshall,Johnson,无一幸免

    文章出自:http://dsqiu.iteye.com/blog/1689163 最短路径算法--Dijkstra,Bellman-Ford,Floyd-Warshall,Johnson,无一幸免 本 ...

  9. C语言基本数据结构之三(图的广度及深度遍历,求单源最短路径的Dijkstra算法)

    上一篇主要讲了二叉树的先序,中序,后序遍历算法以及深度和节点的算法,这篇就讲一讲图的基本算法. 一.图的基本概念 1.1有向图G1: 有向图G是由两个集合V(G)和E(G)组成的,其中:V(G)是顶点 ...

最新文章

  1. android 让应用悬浮,快速回复+app下载
  2. requests.get(url)执行没反应_如果贾府抄家时黛玉还活着,她会是什么反应?
  3. 计算机里的文件弄不到桌面怎么办,笔记本电脑桌面上的文件夹不见了怎么办
  4. php未知参数,php – 使用未知数量的参数创建Laravel Eloquent Query
  5. boost::next_permutation相关的测试程序
  6. 数据库mysql面试题 it_【模块三】数据库篇--MySQL面试题☞参考答案
  7. 9203复习小结 消息框 新窗体
  8. 自动驾驶横向运动学分析和非线性问题处理方法
  9. 一个小技巧让你轻松处理Selenium处理滚动条和元素聚焦
  10. ELK下Elasticsearch优化
  11. shell sort result to self
  12. GridView 中DataFormatString失效的原因
  13. linux无线网卡模拟ap,TP-Link无线网卡怎么设置虚拟AP
  14. 那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程...
  15. 富途客户端软件测试笔试and面试
  16. G001-181-08
  17. tl-wdr5620虚拟服务器设置,TP-Link TL-WDR5620路由器怎么设置
  18. 如何将一个逻辑库下所有数据集的名称汇总生成新的数据集BY:crackman
  19. 基于springboot的实验室预约管理系统(完美运行,数据库源代码,可远程调试)
  20. java交付工程师发展前景,看完没有不懂的

热门文章

  1. 用Kotlin开发android平台语音识别,语义理解应用(olamisdk)
  2. Android 开源框架之 Android-async-http 源码解读
  3. android6.0源码分析之Camera2 HAL分析
  4. Go语言重点知识点1
  5. 太原工业学院单片机课程设计_我系举办2014年单片机应用技能竞赛开幕式
  6. php管理员登录文件,快速的事情,只有管理员,PHP才能访问文件
  7. adb shell 修改文件名_从零开始学Linux运维|27.Shell编程(函数与参数的传递)
  8. cnc加工中心保养表_CNC加工中心有哪些日常保养方法?
  9. 20201202 《计算感知》武老师 第2节课 笔记
  10. BZOJ 4898 Luogu P3778 [APIO2017]商旅 (分数规划、最短路)