5. 藍橋公園

題目描述

小明喜歡觀景,于是今天他來到了藍橋公園。

已知公園有 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.pswp.cn/bicheng/76594.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76594.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76594.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

虛幻基礎:碰撞幀運算

能幫到你的話&#xff0c;就給個贊吧 &#x1f618; 文章目錄 碰撞碰撞盒線段檢測 幀運算&#xff1a;每個程序流就是一幀的計算結果速度過快時(10000)&#xff0c;導致每幀移動過大(83)&#xff0c;從而導致碰撞盒錯過而沒有碰撞速度快的碰撞要用線段檢測 碰撞 碰撞盒 線段檢…

Qt 入門 3 之對話框 QDialog

Qt 入門 3 之對話框 QDialog 本文從以下幾點分開講述&#xff1a; - 對話框的基本原理介紹 - 兩種不同類型的對話框 - 一個由多個窗口組成并且窗口間可以相互切換的程序 1.模態和非模態對話框 QDialog 類是所有對話框窗口類的基類。對話框窗口是一個經常用來完成短小任務或者…

數據結構——哈希技術及鏈地址法

目錄 一、哈希的定義 二、哈希沖突定義 三、構造哈希函數的方法 四、四種解決哈希沖突的方法 4.1 開放地址法 4.2 鏈地址法 4.3 再散列函數法 4.4 公共區溢出法 五、鏈地址法結構體設計 六、基本操作的實現 6.1 哈希函數 6.2 初始化 6.3 插入值 6.4 刪除值 6.5 查…

算法思想之前綴和(二)

歡迎拜訪&#xff1a;霧里看山-CSDN博客 本篇主題&#xff1a;算法思想之前綴和(二) 發布時間&#xff1a;2025.4.11 隸屬專欄&#xff1a;算法 目錄 滑動窗口算法介紹核心思想大致步驟 例題和為 K 的子數組題目鏈接題目描述算法思路代碼實現 和可被 K 整除的子數組題目鏈接題目…

開源的7B參數OCR視覺大模型:RolmOCR

1. 背景介紹 早些時候&#xff0c;Allen Institute for AI 發布了 olmOCR&#xff0c;這是一個基于 Qwen2-VL-7B 視覺語言模型&#xff08;VLM&#xff09;的開源工具&#xff0c;用于處理 PDF 和其他復雜文檔的 OCR&#xff08;光學字符識別&#xff09;。開發團隊對該工具的…

移動端六大語言速記:第14部分 - 數據庫操作

移動端六大語言速記:第14部分 - 數據庫操作 本文將對比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift這六種移動端開發語言在數據庫操作方面的特性,幫助開發者理解和掌握各語言的數據庫編程能力。 14. 數據庫操作 14.1 SQL查詢 各語言SQL查詢實現方式對比: 特性Ja…

有哪些反爬機制可能會影響Python爬取視頻?如何應對這些機制?

文章目錄 前言常見反爬機制及影響1. IP 封禁2. 驗證碼3. 請求頭驗證4. 動態加載5. 加密與混淆6. 行為分析 應對方法1. 應對 IP 封禁2. 應對驗證碼3. 應對請求頭驗證4. 應對動態加載5. 應對加密與混淆6. 應對行為分析 前言 在使用 Python 爬取視頻時&#xff0c;會遇到多種反爬…

ESP32開發入門:基于VSCode+PlatformIO環境搭建指南

前言 ESP32作為一款功能強大的物聯網開發芯片&#xff0c;結合PlatformIO這一現代化嵌入式開發平臺&#xff0c;可以大幅提升開發效率。本文將詳細介紹如何在VSCode中搭建ESP32開發環境&#xff0c;并分享實用開發技巧。 一、環境安裝&#xff08;Windows/macOS/Linux&#xf…

DeepSeek:穿透行業知識壁壘的搜索引擎攻防戰

DeepSeek&#xff1a;穿透行業知識壁壘的搜索引擎攻防戰 文 / 產業智能觀察組&#xff08;人機協同創作&#xff09; 一、搜索引擎的"認知折疊"危機 2024年Q1數據顯示&#xff0c;百度搜索結果前10頁中&#xff0c;61.7%的內容存在"偽專業化"現象——看似…

SQL 外鍵(Foreign Key)詳細講解

1. 什么是外鍵&#xff1f;?? ??定義??&#xff1a;外鍵是數據庫表中的一列&#xff08;或一組列&#xff09;&#xff0c;用于??建立兩個表之間的關聯關系??。外鍵的值必須匹配另一個表的主鍵&#xff08;Primary Key&#xff09;或唯一約束&#xff08;Unique Con…

5G中的DU和CU的作用

在5G網絡架構中&#xff0c;CU&#xff08;Centralized Unit&#xff0c;集中單元&#xff09; 和 DU&#xff08;Distributed Unit&#xff0c;分布單元&#xff09; 是無線接入網&#xff08;RAN&#xff09;的重要組成部分&#xff0c;它們的分工和作用如下&#xff1a; 1.…

深度解析 n8n:強大的開源工作流自動化平臺

在數字化時代&#xff0c;企業和個人面臨著日益復雜的工作流程和多樣化的應用工具&#xff0c;如何高效整合這些資源、實現工作流的自動化成為提升效率的關鍵。n8n 作為一款開源的工作流自動化平臺&#xff0c;憑借其強大的功能、廣泛的應用集成能力和靈活的部署方式&#xff0…

ruby超高級語法

以下是 Ruby 中一些 極度硬核 的語法和底層特性&#xff0c;涉及元編程的深淵、虛擬機原理、語法黑魔法等&#xff0c;適用于追求極限的 Ruby 開發者&#xff1a; 高級語法一 一、語法核彈級操作 1. 動態修改繼承鏈 class A; def foo; "A"; end end class B; def …

flutter 獲取通話記錄和通訊錄

Dart SDK version is 3.7.01 dependencies:flutter:sdk: flutterpermission_handler: ^11.0.1 # 權限管理flutter_contacts: ^1.1.92call_log: ^5.0.5cupertino_icons: ^1.0.8dev_dependencies:flutter_test:sdk: flutterflutter_lints: ^5.0.0 2 contact_and_calls_page.da…

bash腳本手動清空mysql表數據

文章目錄 1、bash腳本手動清空mysql表數據 1、bash腳本手動清空mysql表數據 #!/bin/bash# 配置區域&#xff08;修改此處&#xff09; MYSQL_USER"root" MYSQL_PASSWORD"123456" MYSQL_HOST"localhost" DATABASES("hps-base:base_test_ite…

Spark Core編程

一文讀懂Spark Core編程核心要點 最近在學習大數據處理框架Spark&#xff0c;今天來給大家分享一下Spark Core編程中非常重要的內容&#xff0c;包括RDD算子、累加器和廣播變量&#xff0c;希望能幫助大家更好地理解和掌握Spark編程。先來說說RDD算子&#xff0c;它是Spark編程…

SDP(一)

SDP(Session Description Protocol)會話描述協議相關參數 Session Description Protocol Version (v): 0 --說明&#xff1a;SDP當前版本號 Owner/Creator, Session Id (o): - 20045 20045 IN IP4 192.168.0.0 --說明&#xff1a;發起者/創建者 會話ID&#xff0c;那么該I…

HarmonyOS:組件布局保存至相冊

一&#xff0c;需求背景 有這樣一個需求&#xff0c;將頁面上的某個自定義組件以圖片的形式保存至相冊。 二&#xff0c;需求拆解 根據需求分析&#xff0c;可將需求拆解成兩步&#xff1a; 1&#xff0c;將組件轉換成圖片資源&#xff1b; 2&#xff0c;將圖片保存到相冊…

算法中的數論基礎

算法中的數論基礎 本篇文章適用于算法考試或比賽之前的臨場復習記憶&#xff0c;沒有復雜公式推理&#xff0c;基本上是知識點以及函數模版&#xff0c;涵蓋取模操作、位運算的小技巧、組合數、概率期望、進制轉換、最大公約數、最小公倍數、唯一分解定理、素數、快速冪等知識…

Redis下載穩定版本5.0.4

https://www.redis.net.cn/download/ Redis下載 Redis 版本號采用標準慣例:主版本號.副版本號.補丁級別,一個副版本號就標記為一個標準發行版本,例如 1.2,2.0,2.2,2.4,2.6,2.8,奇數的副版本號用來表示非標準版本,例如2.9.x發行版本是Redis 3.0標準版本的非標準發行版本…