5. 蓝桥公园

news2025/4/12 17:53:28

题目描述

小明喜欢观景,于是今天他来到了蓝桥公园。

已知公园有 N 个景点,景点和景点之间一共有 M 条道路。小明有 Q 个观景计划,每个计划包含一个起点 stst 和一个终点 eded,表示他想从 stst 去到 eded。但是小明的体力有限,对于每个计划他想走最少的路完成,你可以帮帮他吗?

输入描述

输入第一行包含三个正整数 N,M,Q

第 22 到 M+1行每行包含三个正整数 u,v,w,表示 u↔v 之间存在一条距离为 w的路。

第 M+2 到 M+Q−1行每行包含两个正整数 st,ed,其含义如题所述。

1≤N≤400,1≤M≤N×(N−1)2,Q≤103,1≤u,v,st,ed≤n,1≤w≤109

输出描述

输出共 Q 行,对应输入数据中的查询。

若无法从 st 到达 ed 则输出 −1。

题目分析

        这是一道关于求最短路径长度。 

算法:Floyd算法

       关于详细的学习大家可以参考:弗洛伊德(Floyd)算法求图的最短路径_弗洛伊德算法求最短路径-CSDN博客

核心代码(不用管路径,只求最短路劲长度):

for(int k = 0; k < n; k++) //k是中间点
{
    for(int v = 0; v < n; v++) //v是起点
    {
        for(int w = 0; w < n; w++) //w是终点
        {
            D[v][w] = min(D[v][w], D[v][k] + D[k][w]);
        }
    }
}

        使用算法处理后数组D是存放所有点到某点的最短路径长度。

思路:

(1)先初始化数组D,为了实现判断,迎合w的值我们将所有值变成2e18(long long 数据类型能够存储的最大值),再将对角线上的值置为0(点自己到自己的距离)。

(2)首先我们将数组D开到足够大,存储输入的路径长度(注意题目中是双向的)。

(3)利用算法处理数组中的值。

(4)输出结果。

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n, m, q;
ll D[1500][1500];

void floyd()
{
  int k, v, w;
  for (k = 0; k < n; k++)
  {
    for (v = 0; v < n; v++)
    {
      for (w = 0; w < n; w++)
      {
          D[v][w] = min(D[v][w], D[v][k] + D[k][w]);
      }
    }
  }
}

int main()
{

  cin >> n >> m >> q;
  ll u, v, w;
  for(int i = 0; i < n; i++){
    for(int j = 0; j < n; j++) {
      D[i][j] = 2e18;
    }
  }
  for(int i = 0; i < n; i++){
    D[i][i] = 0;
  }
  while(m--) {
    cin >> u >> v >> w;
    u--;v--;//我们的算法中使用的是0~n-1,所以我们--
    D[u][v] = D[v][u] = min(w, D[u][v]);
  }
  floyd();
  int st, ed;
  while(q--) {
    cin >> st >> ed;
    st--;ed--;
    if(D[st][ed] != 2e18)
    {
      cout << D[st][ed] << "\n";
    }else{
      cout << -1 << "\n";
    }
  }
  return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2333272.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器人零位标定修正流程介绍

如果想看运动学标定可以看看 机器人运动学参数标定, 一次性把运动学参数和零位标定等一起标定求解. 1. 零位标定 零位标定是机器人运动学标定中的一个重要步骤&#xff0c;其目的是校正机器人关节的初始位置误差。以下是需要进行零位标定的主要原因&#xff1a; 制造误差 在机…

深入 C++ 线程库:从创建到同步的探索之旅

目录 创建多线程 获取线程返回值 1.传指针 2.传引用 原子操作 互斥量 互斥量&#xff08;Mutex&#xff09;的基本概念 mutex类型介绍 锁的类型 互斥锁&#xff08;Mutex&#xff09; 自旋锁&#xff08;Spin Lock&#xff09; 读写锁&#xff08;Read - Write Lo…

【2025年认证杯数学中国数学建模网络挑战赛】A题 解题建模过程与模型代码(基于matlab)

目录 【2025年认证杯数学建模挑战赛】A题解题建模过程与模型代码&#xff08;基于matlab&#xff09;A题 小行星轨迹预测解题思路第一问模型与求解第二问模型与求解 【2025年认证杯数学建模挑战赛】A题 解题建模过程与模型代码&#xff08;基于matlab&#xff09; A题 小行星轨…

Matlab 分数阶PID控制永磁同步电机

1、内容简介 Matlab 203-分数阶PID控制永磁同步电机 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略

4185 费马小定理求逆元

4185 费马小定理求逆元 ⭐️难度&#xff1a;简单 &#x1f31f;考点&#xff1a;费马小定理 &#x1f4d6; &#x1f4da; import java.util.Scanner; import java.util.Arrays;public class Main {static int[][] a;public static void main(String[] args) {Scanner sc …

界面控件DevExpress WinForms v25.1新功能预览 - 聚焦用户体验升级

DevExpress WinForms拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜…

卷积神经网络(CNN)基础

目录 一、应用场景 二、卷积神经网络的结构 1. 输入层&#xff08;Input Layer&#xff09; 2. 卷积层&#xff08;Convolutional Layer&#xff09; 3. 池化层&#xff08;Pooling Layer&#xff09; 最大池化&#xff08;max_pooling&#xff09;或平均池化&#xff08;…

Android Spotify-v9.0.36.443-arm64-Experimental Merged版

Android Spotify 链接&#xff1a;https://pan.xunlei.com/s/VONXTdIv9d4FnAiNMMliIAEJA1?pwdxt7q# Android Spotify-v9.0.36.443-arm64-Experimental Merged版 享受高达256kbps的AAC音频。

LLM之Agent(十六)| MCP已“过时”?Google近期推出Agent2Agent 协议 (A2A)

如今&#xff0c;企业越来越多地构建和部署自主代理&#xff0c;以帮助扩展、自动化和增强整个工作场所的流程 - 从订购新笔记本电脑到协助客户服务代表&#xff0c;再到协助供应链规划。 为了最大限度地发挥代理 AI 的优势&#xff0c;这些代理能够在一个动态的、多代理的生态…

Transformer 训练:AutoModelForCausalLM,AutoModelForSequenceClassification

Transformer 训练:AutoModelForCausalLM,AutoModelForSequenceClassification 目录 Transformer 训练:AutoModelForCausalLM,AutoModelForSequenceClassification`AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)`功能概述参数解释`AutoModelForSequen…

Java学习总结-端口-协议

端口号&#xff1a;一个16位的二进制&#xff0c;范围是0-65535 端口分类&#xff1a; 周知端口&#xff1a;0-1023&#xff0c;被预先定义的知名应用占用&#xff08;如&#xff1a;HTTP占用80&#xff0c;FTP占用21&#xff09; 注册端口&#xff1a;1024-49151&#xff0…

克魔助手(Kemob)安装与注册完整教程 - Windows/macOS双平台指南

iOS设备管理工具克魔助手便携版使用全指南 前言&#xff1a;为什么需要专业的iOS管理工具 在iOS开发和设备管理过程中&#xff0c;开发者经常需要突破系统限制&#xff0c;实现更深层次的控制和调试。本文将详细介绍一款实用的便携式工具的使用方法&#xff0c;帮助开发者快速…

qwen-vl 实现OCR的测试

OCR 技术是数字化时代必不可少的实用工具。以前都依赖专业的公司的专业软件才能完成。成本很高。也正因为如此&#xff0c;我国纸质资料的数字化并不普及。基于大模型的ORC 也许会改变这样的现状。 文本识别&#xff0c;也称为光学字符识别 (OCR)&#xff0c;可以将印刷文本或…

算法训练之动态规划(五)——简单多状态问题

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…

SVMSPro分布式综合安防管理平台-->以S3存储革新,开启智能安防新纪元

SVMSPro分布式综合安防管理平台–>以S3存储革新&#xff0c;开启智能安防新纪元 在数字化转型浪潮下&#xff0c;企业安防管理正面临海量数据存储、跨区域协同以及数据安全的严峻挑战。如何实现高效、弹性、低成本的存储扩容&#xff1f;如何确保关键录像数据万无一失&…

脑科学与人工智能的交叉:未来智能科技的前沿与机遇

引言 随着科技的迅猛发展&#xff0c;脑科学与人工智能&#xff08;AI&#xff09;这两个看似独立的领域正在发生深刻的交汇。脑机接口、神经网络模型、智能机器人等前沿技术&#xff0c;正带来一场跨学科的革命。这种结合不仅推动了科技进步&#xff0c;也在医疗、教育、娱乐等…

docker 运行自定义化的服务-后端

docker 运行自定义化的服务-前端-CSDN博客 运行自定义化的后端服务 具体如下&#xff1a; ①打包后端项目&#xff0c;形成jar包 ②编写dockerfile文件&#xff0c;文件内容如下&#xff1a; # 使用官方 OpenJDK 镜像 FROM jdk8:1.8LABEL maintainer"ATB" version&…

NO.82十六届蓝桥杯备战|动态规划-从记忆化搜索到动态规划|下楼梯|数字三角形(C++)

记忆化搜索 在搜索的过程中&#xff0c;如果搜索树中有很多重复的结点&#xff0c;此时可以通过⼀个"备忘录"&#xff0c;记录第⼀次搜索到的结果。当下⼀次搜索到这个结点时&#xff0c;直接在"备忘录"⾥⾯找结果。其中&#xff0c;搜索树中的⼀个⼀个结点…

【时时三省】(C语言基础)用switch语句实现多分支选择结构 例题

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 例题&#xff1a; 用switch语句处理菜单命令。在许多应用程序中&#xff0c;用菜单对流程进行控制&#xff0c;例如从键盘输入一个 A 或 a 字符&#xff0c;就会执行A操作&#xff0c;输入一…

全域数字化:从“智慧城市”到“数字生命体”的进化之路

一、国家战略下的城市数字化浪潮 2024年5月&#xff0c;国家四部委联合发布《关于深化智慧城市发展 推进城市全域数字化转型的指导意见》&#xff0c;明确提出以数据为引擎&#xff0c;系统性重塑城市技术架构与管理流程&#xff0c;推动城市治理迈向“全域协同、数实融合”的…