7-9 旅游规划 (25 分)--SPFA算法

news/2024/11/19 17:25:21/

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

输入格式:

输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;D是目的地的城市编号。随后的M行中,每行给出一条高速公路的信息,分别是:城市1、城市2、高速公路长度、收费额,中间用空格分开,数字均为整数且不超过500。输入保证解的存在。

输出格式:

在一行里输出路径的长度和收费总额,数字间以空格分隔,输出结尾不能有多余空格。

输入样例:

4 5 0 3
0 1 1 20
1 3 2 30
0 3 4 10
0 2 2 20
2 3 1 20

输出样例:

3 40
#include<bits/stdc++.h>
using namespace std;
int inf=0x3f3f3f3f;
int main(){int n,m,s,d;cin>>n>>m>>s>>d;int road[n][n];int price[n][n];fill(road[0],road[0]+n*n,inf);fill(price[0],price[0]+n*n,inf);int a,b,c,x;for(int i=0;i<m;i++){cin>>a>>b>>c>>x;road[a][b]=c;road[b][a]=c;price[a][b]=x;price[b][a]=x;}for(int i=0;i<n;i++){road[i][i]=0;price[i][i]=0;}int dist[n];fill(dist,dist+n,inf);queue<int>q;bool inq[n]={0};q.push(s);int cost[n];fill(cost,cost+n,inf);cost[s]=0;inq[s]=1;dist[s]=0;while(q.size()!=0){int v=q.front();q.pop();inq[v]=0;for(int i=0;i<n;i++){if(road[v][i]!=inf){if(dist[v]+road[v][i]<dist[i]){dist[i]=dist[v]+road[v][i];cost[i]=cost[v]+price[v][i];if(inq[i]==0){q.push(i);inq[i]=1;}}else if(cost[v]+price[v][i]<cost[i]&&dist[v]+road[v][i]==dist[i]){cost[i]=cost[v]+price[v][i];}}}}cout<<dist[d]<<' '<<cost[d]<<endl;return 0;
}


http://www.ppmy.cn/news/471106.html

相关文章

7-33 地下迷宫探索 (30 分)-简单dfs

地道战是在抗日战争时期&#xff0c;在华北平原上抗日军民利用地道打击日本侵略者的作战方式。地道网是房连房、街连街、村连村的地下工事&#xff0c;如下图所示。 我们在回顾前辈们艰苦卓绝的战争生活的同时&#xff0c;真心钦佩他们的聪明才智。在现在和平发展的年代&#x…

苹果蓝牙耳机平价替代,可以媲美airpods的蓝牙耳机推荐!

苹果蓝牙耳机平价替代&#xff0c;可以媲美airpods的蓝牙耳机推荐&#xff01; 耳机是我们听音乐或者接听电话的电子设备&#xff0c;目前市面说那个除了有线耳机之外&#xff0c;还有无线蓝牙耳机&#xff0c;它采用蓝牙连接方式&#xff0c;可以与带有蓝牙功能的设备连接&am…

【windows环境 PKCS11库Demo 用于劫持PKCS11库并打印参数】

windows环境 PKCS11库Demo 用于劫持PKCS11库并打印参数 背景PKCS11函数表 背景 PKCS(Public—Key Cryptography Standards)是著名的RSA实验室为提供公钥加密技术的互操作性而发布的一系列可供参照的标准。 最近在对新版本签名控件&#xff08;包含交易签名、证书下载更新等功…

SAP 详细解析成本收集器

成本收集器作为成本对象&#xff0c;主要应用于按期间进行成本核算的情况&#xff0c;在这种情况下会把产品创建为成本收集器&#xff0c;实际成本的收集和差异的结算全部按照成本收集器进行处理&#xff0c;财务的成本分析也针对成本收集器进行。 成本收集器是按期间核算&am…

天大c语言,天大2018年6月《C语言程序设计》大作业答案参考

[j]); ( c: ], j; o% g8 K _____④_____; } + [" ]4 F: K/ A4 Z; T4 H8 m} , h; Y; o. r2 O/ T# K. L o) b# n- M+ O7 j& Y / t4 [% |1 h- j6 Q- O& U6 X! p; I2 U9 h& O( a 3、输出所有的水仙花数。所谓的水仙花数是指一个3位数,其各位…

CP张量分解概述

1. 前置知识 秩为 1 1 1 的张量是指由一个向量的外积所生成的张量。对于一个向量 v ∈ R n \mathbf{v} \in \mathbb{R}^n v∈Rn&#xff0c;它的秩为 1 1 1 的张量【张量习惯性使用欧拉粗体字母表示】可以表示为 T v ∘ v \mathcal{T} \mathbf{v} \circ \mathbf{v} Tv∘v…

windows的各种扩展名详解

Windows系统文件按照不同的格式和用途分很多种类&#xff0c;为便于管理和识别&#xff0c;在对文件命名时&#xff0c;是以扩展名加以区分的&#xff0c;即文件名格式为: 主文件名.扩展名。这样就可以根据文件的扩展名&#xff0c;判定文件的种类&#xff0c;从而知道其格式和…

PHP不使用CURL发起POST请求

使用场景 发现如下错误需要将CURL的SSL由NSS改为OpenSSL的 cURL error 35: A PKCS #11 module returned CKR_DEVICE_ERROR, indicating that a problem has occurred with the token or slot. (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)上述错误原因有可能是…