PAT (Advanced Level) - 1030 Travel Plan

devtools/2024/10/19 1:25:26/

在这里插入图片描述

最短路径

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;const int N = 510;int n, m, S, T;
int g[N][N], c[N][N];
int dist[N], cost[N], pre[N];
bool st[N];void dijkstra() {memset(dist, 0x3f, sizeof(dist));memset(cost, 0x3f, sizeof(cost));dist[S] = 0;cost[S] = 0;pre[S] = S;for (int i = 0; i < n; ++i) {int t = -1;for (int j = 0; j < n; ++j)if (!st[j] && (t == -1 || dist[j] < dist[t])) t = j;st[t] = true;for (int j = 0; j < n; ++j) {if (dist[j] > dist[t] + g[t][j]) {dist[j] = dist[t] + g[t][j];cost[j] = cost[t] + c[t][j];pre[j] = t;} else if (dist[j] == dist[t] + g[t][j]) {if (cost[j] > cost[t] + c[t][j]) {cost[j] = cost[t] + c[t][j];pre[j] = t;}}}}
}void print() {int stk[N], top = -1;int x = T;while (x != S) {stk[++top] = x;x = pre[x];}stk[++top] = S;while (top != -1) cout << stk[top--] << " ";
}int main() {cin >> n >> m >> S >> T;memset(g, 0x3f, sizeof(g));memset(c, 0x3f, sizeof(c));for (int i = 0; i < m; ++i) {int a, b, L, W;cin >> a >> b >> L >> W;g[a][b] = g[b][a] = L;c[a][b] = c[b][a] = W;}dijkstra();print();cout << dist[T] << " " << cost[T] << endl;return 0;
}

http://www.ppmy.cn/devtools/28356.html

相关文章

C#(C Sharp)学习笔记_方法(Medthod)【十六】

什么是方法&#xff1f; 在编程中&#xff0c;方法&#xff08;Method&#xff09;是一个执行特定操作的代码块。它是一种将逻辑封装起来的方式&#xff0c;使得代码更加模块化、重用性更高&#xff0c;并且易于维护。以下是方法的一些关键特性&#xff1a; 封装性&#xff1a…

QT程序通过GPIB-USB-HS转接线控制数字万用表

1、硬件准备 1.1、数字万用表 型号 &#xff1a;Agilent 34401A 前面图示&#xff1a; 后面图示&#xff1a;有GPIB接口 1.2、GPIB-USB-HS转接线 2、GPIB协议基础了解 2.1、引脚 8条数据线&#xff1a;DIO1 ~ DIO8 5条管理线&#xff1a;IFC、ATN、REN、EOI、SRQ 3条交握线…

【Axure高保真原型】拖动穿梭选择器

今天和大家分享拖动穿梭选择器的原型模板&#xff0c;我们可以拖动两个选择器里的选项标签&#xff0c;移动到另外一个选择器里。那这个原型模板是用中继器制作的&#xff0c;所以使用也很方便&#xff0c;只需要在中继器表格里填写选项信息&#xff0c;即可自动生成交互效果&a…

Maven的仓库、周期和插件

优质博文&#xff1a;IT-BLOG-CN 一、简介 随着各公司的Java项目入库方式由老的Ant改为Maven后&#xff0c;相信大家对Maven已经有了个基本的熟悉。但是在实际的使用、入库过程中&#xff0c;笔者发现挺多人对Maven的一些基本知识还缺乏了解&#xff0c;因此在此处跟大家简单地…

C# 中返回迭代器 和直接返回List结果有什么不同

在C#中&#xff0c;返回迭代器和直接返回List结果之间有一些重要的区别。这些区别涉及到内存使用、性能以及灵活性等方面。 返回迭代器 vs 直接返回List结果 内存使用&#xff1a; 返回迭代器&#xff08;使用yield语句&#xff09;时&#xff0c;元素按需生成&#xff0c;不…

在UI界面中播放视频_unity基础开发教程

在UI界面中播放视频_unity基础开发教程 前言操作步骤结语 前言 之前我写过一篇在场景中播放视频的文章&#xff0c;但是在开发中有时候也会在UI的界面中播放视频&#xff0c;这期我们做一下在UI的界面中播放视频。 操作步骤 首先在场景中创建一个Raw Image&#xff0c;UI->…

http和https 所有的请求头信息

http 所有的请求头信息 HTTP请求头信息包含了客户端向服务器发送请求时附带的各种细节信息,帮助服务器更好地处理请求。这些头部字段多种多样,用于说明请求的各个方面,如客户端信息、请求的内容类型、缓存策略等。以下是一些常见的HTTP请求头字段,但请注意,这并非所有可能…

【论文阅读】ESRT-Transformer for Single Image Super-Resolution

ESRT-Transformer for Single Image Super-Resolution 论文地址摘要1. 引言2.相关工作2.1 基于 CNN 的 SISR 模型2.2 Vision Transformer Transformer 3. Efficient Super-Resolution Transformer3.1. Lightweight CNN Backbone (LCB)3.2. High-frequency Filtering Module (HF…