【數據結構】C : 追星

C : 追星

文章目錄

  • C : 追星
    • Description
    • Input
    • Output
    • Sample
      • Input
      • Output
    • 解題思路
    • AC代碼:

Description

城市總共有N座。yintama是右京女神的狂熱粉,當他得知右京女神將要在城市N舉辦演唱會的時候,馬上開始準備動身前往城市N。原本他可以直接乘飛機直達城市N,然而貧窮使他屈服,他必須選擇總花費最少的那條路徑。
設總共有N座城市(2<=N<=1000),城市編號分別為1,2,3……N。M條航線(1<=M<=2000),每條航線連接兩座城市,相互可以到達(無向的)。
yintama目前在身在城市1,求最后yintama參加右京女神演唱會所需要的最少花費。(PS:重邊考慮一下?)

Input

有多組輸入。
第一行輸入一個N、M,代表城市的總數,以及航線的總數。
接下來M行,每行輸入三個數字u v w,代表城市u、v之間存在航線,機票花費為w。

Output

每行輸出一個數,代表yintama參加右京女神演唱會所需的最少花費。

Sample

Input

5 5
1 2 20
2 3 30
3 4 20
4 5 20
1 5 100

Output

90

解題思路

這道題目是一個圖論的單源最短路徑,可以通過Dijkstra算法來求解。關鍵在于找到從起始城市(城市1)到目的城市(城市N)的最短路徑(這道題是指錢)。

  1. 理解問題

    • 有N個城市和M條航線。
    • 每條航線連接兩個城市,并有一個與之相關的機票花費(權重)。
    • 需要從城市1出發,到達城市N,使得總花費最小。
  2. 數據結構選擇

    • 使用一個二維數組來表示城市之間的航線和對應的花費。數組的大小為N×N,其中graph[i][j]表示從城市i到城市j的機票花費。
  3. 處理重邊

    • 如果有多條航線連接同一對城市,只保留花費最小的那條。這意味著在讀取輸入時,需要更新二維數組中的值,只保留最小的花費。
  4. 使用Dijkstra算法

    【數據結構】B : DS圖應用–最短路徑

  5. 輸出結果

    • 最終距離數組中的distance[N-1](因為數組是從0開始計數的)就是從城市1到城市N的最小花費。
  6. 注意點:無向圖,處理重邊,可以不使用last數組記錄上節點

AC代碼:

#include<iostream>
#include<climits>
using namespace std;// 我會寫兩份代碼
void Dijkstra(int** graph, int n) {int* distance = new int[n];bool* fixed = new bool[n];// 預處理for (int i = 0; i < n; i++) {distance[i] = INT_MAX;fixed[i] = false;}distance[0] = 0;for (int count = 0; count < n - 1; count++) {int min = INT_MAX, min_index;// 找最小目前最短的及其下標for (int v = 0; v < n; v++)if (!fixed[v] && distance[v] <= min)min = distance[v], min_index = v;fixed[min_index] = true;for (int v = 0; v < n; v++)if (!fixed[v] && graph[min_index][v] && distance[min_index] != INT_MAX && distance[min_index] + graph[min_index][v] < distance[v])distance[v] = distance[min_index] + graph[min_index][v];}cout << distance[n - 1] << endl;delete[] distance;delete[] fixed;
}int main() {int n, m;cin >> n >> m;int** graph = new int* [n];for (int i = 0; i < n; i++)graph[i] = new int[n];for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)graph[i][j] = 0;for (int i = 0; i < m; i++) {int a, b, c;cin >> a >> b >> c;if (graph[a - 1][b - 1] == 0 || c < graph[a - 1][b - 1]) {graph[a - 1][b - 1] = c;graph[b - 1][a - 1] = c;}}Dijkstra(graph, n);for (int i = 0; i < n; i++)delete[] graph[i];delete[] graph;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/162881.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/162881.shtml
英文地址,請注明出處:http://en.pswp.cn/news/162881.shtml

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

相關文章

738. Monotone Increasing Digits 968. Binary Tree Cameras

738. Monotone Increasing Digits An integer has monotone increasing digits單調遞增數字 if and only if each pair of adjacent digits x and y satisfy x < y. Given an integer n, return the largest number that is less than or equal to n with monotone increa…

TypeScript 學習筆記 第三部分 貪吃蛇游戲

尚硅谷TypeScript教程&#xff08;李立超老師TS新課&#xff09; 1. 創建開發環境 創建工程&#xff0c;使用學習筆記的第二部分安裝css部分 npm i -D less less-loader css-loader style-loader對css部分處理&#xff0c;能夠運行在低版本瀏覽器 npm i -D postcss postcss…

oracle rac 19c修改不同網段public ip

客戶需求將才搭建的oracle 19.19數據庫從192.168.168.0網段調整到192.168.213網段 1.停止兩個節點集群 停止之前最好ocrdump一下&#xff0c;防止有問題 crsctl stop crs 2.修改public ip地址和/etc/hosts 3. 啟動crs 這時集群可以啟動&#xff0c;但是上面的一些資源啟動會…

音色逼真、韻律自然的AI人聲克隆限時福利!

聲音&#xff0c;為數字人注入靈魂。 2023云棲大會上&#xff0c;阿里云視頻云接受了CCTV-2財經頻道的采訪&#xff0c;分享并演示了如何利用云端智能剪輯&#xff0c;一站式完成數字人渲染及視頻精編二創。 正如視頻開頭所呈現的AI重現演員“原聲”&#xff0c;近年來&#x…

基于SpringBoot的圖書管理系統

基于SpringBoot的圖書管理系統 圖書管理系統開發技術功能模塊代碼結構數據庫設計運行截圖源碼獲取 圖書管理系統 開發技術 技術&#xff1a;SpringBoot、MyBatis-Plus、MySQL、Beetl、Layui。 框架&#xff1a;基于開源框架Snowy-Layui開發。 工具&#xff1a;IDEA、Navicat等…

【Linux】進程間通信——進程間通信的介紹和分類、管道、匿名管道、命名管道、匿名管道與命名管道的區別

文章目錄 進程間通信1.進程間通信的介紹1.1目的和發展 2.進程間通信分類3.管道3.1匿名管道3.1.1匿名管道的原理&#xff08;文件角度&#xff09;3.1.2匿名管道的原理&#xff08;內核角度&#xff09;3.1.3管道讀寫規則3.1.4管道特點 3.2命名管道3.2.1創建命名管道3.2.2命名管…

PTA-列出所有祖先結點

對于給定的二叉樹&#xff0c;本題要求你按從上到下順序輸出指定結點的所有祖先結點。 輸入格式: 首先第一行給出一個正整數 N&#xff08;≤10&#xff09;&#xff0c;為樹中結點總數。樹中的結點從 0 到 N?1 編號。 隨后 N 行&#xff0c;每行給出一個對應結點左右孩子的…

談思生物醫療直播 | 利用類器官模型研究肺的發育與穩態

類器官是一種三維細胞培養物&#xff0c;其在細胞類型&#xff0c;空間結構及生理功能上能夠模擬對應器官&#xff0c;從而提供一個高度生理相關的系統。自2009年小腸類器官首次建立至今&#xff0c;類器官研究已經延伸到多個組織系統&#xff0c;并成為當下生命科學領域最熱門…

element plus 使用細節

菜鳥一直在糾結這個寫不寫&#xff0c;因為不難&#xff0c;但是菜鳥老是容易忘記&#xff0c;雖然想想或者搜搜就可以馬上寫出來&#xff0c;但是感覺每次那樣就太麻煩了&#xff0c;不如一股做氣寫了算了&#xff0c;后面遇見別的就再來補充&#xff01; 文章目錄 table 表格…

美創獲IDC數據庫安全市場代表廠商推薦,一路引領數據庫安全

近日&#xff0c;全球領先的IT市場研究和咨詢公司IDC發布《IDC Persepctive&#xff1a;中國數據庫安全市場洞察&#xff0c;2023》報告。 憑借多年的技術積累和豐富的產品體系與行業實踐&#xff0c;美創科技獲「代表廠商」推薦&#xff0c;再次彰顯專業領先能力&#xff01; …

Mybatis一級緩存和二級緩存原理剖析與源碼詳解

Mybatis一級緩存和二級緩存原理剖析與源碼詳解 在本篇文章中&#xff0c;將結合示例與源碼&#xff0c;對MyBatis中的一級緩存和二級緩存進行說明。 MyBatis版本&#xff1a;3.5.2 文章目錄 Mybatis一級緩存和二級緩存原理剖析與源碼詳解?級緩存場景一場景二?級緩存原理探究…

責任鏈模式 (Chain of Responsibility Pattern)

定義 責任鏈模式是一種行為型設計模式&#xff0c;用于在對象間建立一條處理請求的鏈。它允許多個對象有機會處理請求&#xff0c;從而減少請求的發送者和接收者之間的耦合。在責任鏈模式中&#xff0c;每個接收者包含對另一個接收者的引用&#xff0c;形成一條鏈。如果一個對…

tcp和 udp區別

相同點&#xff1a;都是傳輸層協議 不同點 是否面向連接 tcp:面向連接 三次握手&#xff0c;四次揮手端對端連接全雙工通信&#xff08;允許雙端同時收發數據&#xff09; udp:無連接 無三次握手&#xff0c;四次揮手支持一對一,一對多&#xff0c;多對多 數據傳輸方式 …

Linux平臺下使用.NET Core訪問Access數據庫

運行環境 操作系統&#xff1a;Ubuntu 22.04.3 LTS (Jammy)開發工具&#xff1a;Visual Studio 2022 (17.8.0)運行時版本&#xff1a;.NET Runtime 8.0依賴庫&#xff1a;unixodbc、mdbtools、odbc-mdbtools 依賴庫安裝 apt-get update sudo apt-get install unixodbc mdbto…

部署項目時常用的 Linux 命令

目錄 1 前言2 SSH登錄命令3 SCP傳輸命令4 CP拷貝命令5 MV移動命令6 TAR解壓命令7 DU查看文件夾/文件大小8 TAIL查看日志9 NOHUP后臺運行10 結語 1 前言 在應用部署過程中&#xff0c;Linux命令是必不可少的工具。它們能夠幫助我們管理文件、連接服務器、拷貝文件、查看日志以及…

vite項目配置vite.config.ts在打包過程中去除日志

在生產環境上&#xff0c;務必要將日志清除干凈&#xff0c;其因有二&#xff0c;在webgis系統中&#xff0c;有很多幾何數據&#xff0c;體積大、數量多&#xff0c;很容易引起系統卡頓&#xff1b;清除log后&#xff0c;系統看著舒服&#xff0c;協同開發有很多無聊的日志&am…

生日禮物——華為機考真題

題目描述 小牛的孩子生日快要到了&#xff0c;他打算給孩子買蛋糕和小禮物&#xff0c;蛋糕和小禮物各買一個&#xff0c; 他的預算不超過x元。蛋糕 Cake 和小禮物 gift 都有多種價位的可供選擇。 請返回小牛共有多少種購買方案。 輸入描述 第一行表示 Cake的單價, 以逗號分隔 …

字符串:leetcode1410. HTML 實體解析器

1410. HTML 實體解析器 「HTML 實體解析器」 是一種特殊的解析器&#xff0c;它將 HTML 代碼作為輸入&#xff0c;并用字符本身替換掉所有這些特殊的字符實體。 HTML 里這些特殊字符和它們對應的字符實體包括&#xff1a; 雙引號&#xff1a;字符實體為 &quot; &#xff…

一款非常優秀的項目管理工具:進度貓(推薦)

在項目管理中&#xff0c;一個好的工具可以極大地提高效率。 進度貓是一款非常優秀的項目管理工具。它具有非常強大的功能&#xff0c;可以幫助團隊更好地管理項目進度。 通過可視化的方式&#xff0c;將項目進度、任務分配、需求變更等全面呈現給團隊成員&#xff0c;讓團隊…

5.過濾敏感詞 + 發布帖子 + 帖子詳情

目錄 1.過濾敏感詞 1.1 定義前綴樹 1.2 根據敏感詞,初始化前綴樹 1.3 編寫過濾敏感詞方法