pta7-7旅游规划(dijkstra算法)
题目链接: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算法)相关推荐
- 07.图6 旅游规划 [Dijkstra 算法]
07-图6 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干 ...
- 旅游规划 Dijkstra算法、floyd算法
有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路径都是最短的,那么需要输出最便 ...
- EOJ 139 旅游规划 最短路径算法
题目描述 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路径都是最短的,那么需 ...
- 自动驾驶路径规划——Dijkstra算法
目录 前言 1. 深度优先(DFS)和广度优先(BFS) 2. 深度优先搜索(DFS) 2.1 算法基本思想 2.2 深度优先搜索算法(C) 3. 广度优先搜索(BFS) 3.1 算法基本思想 3.2 ...
- 1 基于搜索的路径规划 —— Dijkstra算法(python)
文章目录 算法讲解 重要说明 栅格地图 有权图 1 def main() 1.1 设置机器人的起点和终点,栅格大小,机器人半径 1.2 设置障碍物的位置 1.3 绘制步骤1和2的图 2 class D ...
- pta 7-2 旅游规划(dijkstra 即有路的长度也有收费)
7-2 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...
- 路径规划Dijkstra算法
Dijkstra搜索最短路径: 整体思路 从起始节点开始,将邻域节点进行遍历,标注好邻域节点最小的累计路径长度,直到遍历到终止节点. 算法复杂度 naive的方式,算法复杂度为O(|V|2)O(|V| ...
- 基于Dijkstra算法的武汉地铁路径规划!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:牧小熊,华中农业大学,Datawhale原创作者 前言 最近爬取了 ...
- 基于Dijkstra算法的武汉地铁路径规划!(附下载)
来源:Datawhale 本文约3300字,建议阅读10分钟 本文为你详解路径规划项目,附源码链接. 前言 最近爬取了武汉地铁线路的信息,通过调用高德地图的api 获得各个站点的进度和纬度信息,使用D ...
- 【爬虫、算法】基于Dijkstra算法的武汉地铁路径规划!
作者:牧小熊,华中农业大学,Datawhale原创作者 前言 最近爬取了武汉地铁线路的信息,通过调用高德地图的api 获得各个站点的进度和纬度信息,使用Dijkstra算法对路径进行规划. 1.数据爬 ...
最新文章
- Leetcode 96. 不同的二叉搜索树 解题思路及C++实现
- SAP IBASE在solution manager里的场景
- 修复bug的12个关键步骤
- Spring Boot 2 快速教程:WebFlux 集成 Mongodb(四)
- 最小路径问题_Floyd
- 如何在Mac上的Safari浏览器中输入画中画视频?
- 《python编程:从入门到实战》学习笔记
- 批量转换Caltech Pedestrian Dataset中annotations中的.vbb文件为.txt文件
- 家谱族谱软件用云码宗谱
- LOJ10102旅游航道
- 谷歌学术搜索技巧:查找一个句子的某个空应该用什么词
- 《重构》笔记---坏代码的味道与处理
- 几步操作即可实现WhatsApp群发
- linux下cp -b,Linux下cp的命令解释
- 该不该造自己的轮子?
- java中stu是啥,Java 面试:对象克隆
- 武汉php工程师,Laravel 招聘:[武汉][10-20k][光谷][CmsTop新项目]高级PHP工程师 | Laravel China 社区...
- 使用Vagrant快速创建linux虚拟机
- 凝思linux系统显卡设置,TaiShan服务器安装凝思操作系统Linx6.0.90并设置独立显卡WX2100屏幕显示输出...
- 高等数学——反常积分的收敛法