题目链接:https://pintia.cn/problem-sets/1101307589335527424/problems/1101314114762387456

题意:给n给城市,m条公路,公路是双向的,起点S,终点D,并给出每条公路连接的两个city的编号以及路费,求S到D的最短距离,若具有最短距离的路线不止一条,求出路费最少的一条。

思路:单源最短路径问题,利用dijkstra算法求出S到其他点的最短路径,只不过加一个路费cost,在dis相等的情况下,取cost最小值。

AC代码:

#include<bits/stdc++.h>
using namespace std;const int inf=0x3f3f3f3f;
int n,m,S,D;
int dis[505],cost[505],a[505][505],b[505][505],vis[505];void dijkstra(){vis[S]=1;for(int i=0;i<n-1;++i){int Min=inf,k;for(int i=0;i<n;++i)if(!vis[i]&&dis[i]<Min)Min=dis[i],k=i;if(Min==inf) break;vis[k]=1;for(int i=0;i<n;++i)if(!vis[i]&&dis[i]>dis[k]+a[k][i]){dis[i]=dis[k]+a[k][i];cost[i]=cost[k]+b[k][i];}else if(!vis[i]&&dis[i]==dis[k]+a[k][i]&&cost[i]>cost[k]+b[k][i])cost[i]=cost[k]+b[k][i];}
}int main(){scanf("%d%d%d%d",&n,&m,&S,&D);for(int i=0;i<n;++i)for(int j=0;j<n;++j)a[i][j]=b[i][j]=inf;int t1,t2,t3,t4;while(m--){scanf("%d%d%d%d",&t1,&t2,&t3,&t4);a[t1][t2]=a[t2][t1]=t3;b[t1][t2]=b[t2][t1]=t4;}for(int i=0;i<n;++i)dis[i]=a[S][i],cost[i]=b[S][i];dis[S]=cost[S]=0;dijkstra();printf("%d %d\n",dis[D],cost[D]);return 0;
}

转载于:https://www.cnblogs.com/FrankChen831X/p/10492723.html

pta7-7旅游规划(dijkstra算法)相关推荐

  1. 07.图6 旅游规划 [Dijkstra 算法]

    07-图6 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干 ...

  2. 旅游规划 Dijkstra算法、floyd算法

    有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路径都是最短的,那么需要输出最便 ...

  3. EOJ 139 旅游规划 最短路径算法

    题目描述 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路径都是最短的,那么需 ...

  4. 自动驾驶路径规划——Dijkstra算法

    目录 前言 1. 深度优先(DFS)和广度优先(BFS) 2. 深度优先搜索(DFS) 2.1 算法基本思想 2.2 深度优先搜索算法(C) 3. 广度优先搜索(BFS) 3.1 算法基本思想 3.2 ...

  5. 1 基于搜索的路径规划 —— Dijkstra算法(python)

    文章目录 算法讲解 重要说明 栅格地图 有权图 1 def main() 1.1 设置机器人的起点和终点,栅格大小,机器人半径 1.2 设置障碍物的位置 1.3 绘制步骤1和2的图 2 class D ...

  6. pta 7-2 旅游规划(dijkstra 即有路的长度也有收费)

    7-2 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...

  7. 路径规划Dijkstra算法

    Dijkstra搜索最短路径: 整体思路 从起始节点开始,将邻域节点进行遍历,标注好邻域节点最小的累计路径长度,直到遍历到终止节点. 算法复杂度 naive的方式,算法复杂度为O(|V|2)O(|V| ...

  8. 基于Dijkstra算法的武汉地铁路径规划!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:牧小熊,华中农业大学,Datawhale原创作者 前言 最近爬取了 ...

  9. 基于Dijkstra算法的武汉地铁路径规划!(附下载)

    来源:Datawhale 本文约3300字,建议阅读10分钟 本文为你详解路径规划项目,附源码链接. 前言 最近爬取了武汉地铁线路的信息,通过调用高德地图的api 获得各个站点的进度和纬度信息,使用D ...

  10. 【爬虫、算法】基于Dijkstra算法的武汉地铁路径规划!

    作者:牧小熊,华中农业大学,Datawhale原创作者 前言 最近爬取了武汉地铁线路的信息,通过调用高德地图的api 获得各个站点的进度和纬度信息,使用Dijkstra算法对路径进行规划. 1.数据爬 ...

最新文章

  1. Leetcode 96. 不同的二叉搜索树 解题思路及C++实现
  2. SAP IBASE在solution manager里的场景
  3. 修复bug的12个关键步骤
  4. Spring Boot 2 快速教程:WebFlux 集成 Mongodb(四)
  5. 最小路径问题_Floyd
  6. 如何在Mac上的Safari浏览器中输入画中画视频?
  7. 《python编程:从入门到实战》学习笔记
  8. 批量转换Caltech Pedestrian Dataset中annotations中的.vbb文件为.txt文件
  9. 家谱族谱软件用云码宗谱
  10. LOJ10102旅游航道
  11. 谷歌学术搜索技巧:查找一个句子的某个空应该用什么词
  12. 《重构》笔记---坏代码的味道与处理
  13. 几步操作即可实现WhatsApp群发
  14. linux下cp -b,Linux下cp的命令解释
  15. 该不该造自己的轮子?
  16. java中stu是啥,Java 面试:对象克隆
  17. 武汉php工程师,Laravel 招聘:[武汉][10-20k][光谷][CmsTop新项目]高级PHP工程师 | Laravel China 社区...
  18. 使用Vagrant快速创建linux虚拟机
  19. 凝思linux系统显卡设置,TaiShan服务器安装凝思操作系统Linx6.0.90并设置独立显卡WX2100屏幕显示输出...
  20. 高等数学——反常积分的收敛法

热门文章

  1. 常见电容器图片_各种电容器图片大集合
  2. Java中的代码块标记
  3. 设计模式 之 模板模式
  4. Java 线程多线程编程3---线程同步之生产者与消费者问题
  5. java 实现支持向量机
  6. Spring Bean默认配置为单实例 Spring Bean生命周期
  7. [转] 深入理解React 组件状态(State)
  8. 列出所有K个元素的子集-----2013年1月26日
  9. dubbo中的Filter顺序是如何确定的
  10. Android官方命令深入分析之Hierarchy Viewer