c++題目_農場和奶牛

?𝐵B?頭奶牛?(1≤𝐵≤25000)(1≤B≤25000),有?𝑁(2×𝐵≤𝑁≤50000)N(2×B≤N≤50000)?個農場,編號?11?到?𝑁N,有?𝑀(𝑁?1≤𝑀≤100000)M(N?1≤M≤100000)?條雙向邊,第?𝑖i?條邊連接農場?𝑅𝑖Ri??和?𝑆𝑖(1≤𝑅𝑖≤𝑁,1≤𝑆𝑖≤𝑁)Si?(1≤Ri?≤N,1≤Si?≤N),該邊的長度是?𝐿𝑖(1≤𝐿𝑖≤2000)Li?(1≤Li?≤2000)。居住在農場?𝑃𝑖Pi??的奶牛 A?(1≤𝑃𝑖≤𝑁)(1≤Pi?≤N),想送一份新年禮物給居住在農場?𝑄𝑖(1≤𝑄𝑖≤𝑁)Qi?(1≤Qi?≤N)?的奶牛 B,但是奶牛 A 必須先到大衛老師(居住在編號?11?的農場)那里取禮物,然后再送給奶牛 B。你的任務是:奶牛 A 至少需要走多遠的路程?

輸入格式

  • 第一行三個整數?𝑁,𝑀,𝐵N,M,B。

  • 第?22?至?𝑀+1M+1?行,每行?33?個整數?𝑅𝑖,𝑆𝑖,𝐿𝑖Ri?,Si?,Li?。

  • 第?𝑀+2M+2?至?𝑀+𝐵+1M+B+1?行,進行?𝐵B?次詢問,每行?22?個整數?𝑃𝑖,𝑄𝑖Pi?,Qi?。

輸出格式

每次詢問輸出一個整數,即答案。

輸入輸出樣例

輸入 #1復制

6 7 3 
1 2 3 
5 4 3 
3 1 1 
6 1 9 
3 4 2 
1 4 4 
3 2 2 
2 4 
5 1 
3 6 

輸出 #1復制

6 
6 
10 

代碼:

#include<bits/stdc++.h>
using namespace std;
struct Edge {int to;int weight;
};
class Graph {
public:int sum;  // 農場的數量vector<vector<Edge>> ve;  // 鄰接表Graph(int n) {sum = n;ve.resize(n + 1);}void addEdge(int from, int to, int weight) {ve[from].push_back({to, weight});ve[to].push_back({from, weight});}int a(int start, int target) {vector<int> distance(sum + 1, INT_MAX);vector<bool> visited(sum + 1, false);distance[start] = 0;priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;pq.push({0, start});while (!pq.empty()) {int u = pq.top().second;pq.pop();if (visited[u]) {continue;}visited[u] = true;for (const auto& edge : ve[u]) {int v = edge.to;int weight = edge.weight;if (distance[u] + weight < distance[v]) {distance[v] = distance[u] + weight;pq.push({distance[v], v});}}}return distance[target];}
};int main() {int N, M, B;cin >> N >> M >> B;Graph graph(N);for (int i = 0; i < M; ++i) {int R, S, L;cin >> R >> S >> L;graph.addEdge(R, S, L);}for (int i = 0; i < B; ++i) {int P, Q;cin >> P >> Q;int dn = graph.a(P, 1) + graph.a(1, Q);cout << dn << endl;}return 0;
}

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

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

相關文章

【Linux】fork和exec中的信號繼承探索

fork和exec中的信號繼承探索 一、結論二、代碼驗證2.1 代碼編寫2.2 代碼執行 三、linux源碼驗證四、APUE中的驗證五、其他 一、結論 fork時子進程會繼承父進程的信號處理方式&#xff0c;包括父進程設置信號為SIG_DFL或SIG_IGN或捕獲后設置自定義處理函數。exce時子進程會繼承…

ChatGPT寫作指南:掌握5種高效格式成為寫作達人【含實用示例】

1. **簡潔指令** 當任務較簡單時&#xff0c;可以用一小段話來說明&#xff0c;便于理解和執行。如下例&#xff1a; 背景&#xff1a;我負責運營一個旅游主題的社交媒體賬號。 角色&#xff1a;作為一位經驗豐富的文案創作專家&#xff0c;我擅長打造引人注目的旅游內容…

【無標題】亞馬遜5月24日宣布推出2024出口跨境物流加速器計劃

亞馬遜中國5月24日鄭重宣布啟動“2024亞馬遜出口跨境物流加速器計劃”&#xff0c;旨在依托其世界領先的物流網絡和前沿技術&#xff0c;結合本土資源&#xff0c;不斷優化跨境物流服務&#xff0c;以強化中國賣家在跨境物流供應鏈管理方面的能力&#xff0c;進而提升整體效率&…

datagridview復選框選中響應

winform經常用datagridview來處理相關的數據顯示&#xff0c;如果datagridview有復選框&#xff0c;我們應該如何處理相關選中響應。選擇datagridview的cellcontentclick事件&#xff0c;代碼如下&#xff1a; bool isSelectedGridViewRow false&#xff1b; private void da…

深度神經網絡——什么是 K 均值聚類?

K 均值聚類 K 均值聚類是 無監督學習在所有無監督學習算法中&#xff0c;K 均值聚類可能是使用最廣泛的&#xff0c;這要歸功于它的強大功能和簡單性。 K-means 聚類到底是如何工作的&#xff1f; 簡而言之&#xff0c;K 均值聚類的工作原理是 創建參考點&#xff08;質心&am…

Halcon 極坐標轉換圖像

一、概述 先看效果 將圓形的用極坐標轉換成矩性然后再進行識別或者其他缺陷檢測&#xff0c;最后在還圓到原圖中 二、原理&#xff1a; halcon 圓環類缺陷檢測的一種方法&#xff08;極坐標變換法&#xff09;_halcon缺口檢測-CSDN博客 圖像極坐標變換與反變換&#xff08;…

吳恩達深度學習筆記:超 參 數 調 試 、 Batch 正 則 化 和 程 序 框 架(Hyperparameter tuning)3.4-3.5

目錄 第二門課: 改善深層神經網絡&#xff1a;超參數調試、正 則 化 以 及 優 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第三周&#xff1a; 超 參 數 調 試 、 Batch 正 則 化 和 程 序 框 架&#xff08;Hyperparameter …

Spark SQL【Java API】

前言 之前對 Spark SQL 的影響一直停留在 DSL 語法上面&#xff0c;感覺可以用 SQL 表達的&#xff0c;沒有必要用 Java/Scala 去寫&#xff0c;但是面試一段時間后&#xff0c;發現不少公司還是在用 SparkSQL 的&#xff0c;京東也在使用 Spark On Hive 而不是我以為的 Hive O…

ubuntu20.04 開機自動掛載外加硬盤

文章目錄 一、問題描述二、操作1. 查找新添盤符2. 格式化硬盤文件系統3. 掛載硬盤4. 開機自動掛載5. 取消掛載6. 查看掛載的硬盤信息 一、問題描述 因電腦使用一段時間后自身硬盤不足&#xff0c;需外加硬盤使得電腦自動識別加載。 二、操作 1. 查找新添盤符 sudo blkid自己…

Linux基礎命令詳解

Linux基礎命令詳解 1. ls 解釋&#xff1a;列出目錄內容用法&#xff1a;ls [選項] [文件名]示例&#xff1a;ls -l&#xff08;以長格式顯示文件信息&#xff09; 2. cd 解釋&#xff1a;更改目錄用法&#xff1a;cd [目錄名]示例&#xff1a;cd /home&#xff08;切換到/…

# 全面解剖 消息中間件 RocketMQ-(3)

全面解剖 消息中間件 RocketMQ-&#xff08;3&#xff09; 一、RocketMQ – mqadmin 命令介紹 1、mqadmin 管理工具 使用方式 進入 RocketMQ 安裝位置&#xff0c;在 bin 目錄下執行 ./mqadmin {command} {args} # 進入 RocketMQ 安裝目錄的 bin 目錄下&#xff1a; cd /usr…

免費、開源、好用的 SQL 客戶端合集

免費、開源、好用的 SQL 客戶端合集 分類 編程技術 0、SQL Chat SQL Chat 是 2023 年 3 月推出的新型 SQL 客戶端&#xff0c;它將數據庫管理帶入了基于聊天的新時代。 SQL Chat 由 ChatGPT 驅動&#xff0c;能夠幫你編寫和潤色 SQL 語句&#xff0c;讓數據庫操作變得更加智…

微信小程序開發環境的搭建

一、注冊微信小程序賬號 二、安裝微信開發者工具 1.下載微信開發者工具。 官網下載地址&#xff1a;https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/downloads.html 2、選擇穩定版Window64下載安裝 3、下載完畢后&#xff0c;點擊下一步安裝 三、使用微信開發者工具…

SQLite查詢優化

文章目錄 1. 引言2. WHERE子句分析2.1. 索引項使用示例 3. BETWEEN優化4. OR優化4.1. 將OR連接的約束轉換為IN運算符4.2. 分別評估OR約束并取結果的并集 5. LIKE優化6. 跳躍掃描優化7. 連接7.1. 手動控制連接順序7.1.1. 使用 SQLITE_STAT 表手動控制查詢計劃 1. 引言 給定一個…

C# 特性(Attribute)超詳細教程

文章目錄 0.前篇1.特性概念2.特性的聲明和使用2.1 特性定義語法2.2 特性目標 3.預定義特性3.1 AttributeUsage3.2 Conditional3.3 其它預定義特性 4.MyAttributeHelper&#xff08;特性使用幫助類&#xff09;5.特性應用5.1 添加說明信息并獲取5.2 數據驗證 0.前篇 學習本文前…

聊聊Python中的文件讀寫操作

Python 中的文件讀寫操作是數據處理和存儲的基本操作之一。下面&#xff0c;我將詳細解釋如何在 Python 中進行文件的讀寫操作。 1. 打開文件 在 Python 中&#xff0c;使用 open() 函數來打開文件。這個函數需要至少一個參數&#xff0c;即文件名&#xff0c;并且返回一個文件…

數據結構和組成

數據結構組成 數據項&#xff1a;一個數據元素可以由若干數據項組成。 數據對象&#xff1a;有相同性質的數據元素的集合&#xff0c;是數據的子集。 數據結構&#xff1a;是相互之間存在一種或多種特定關系的數據元素的集合。 邏輯結構 數據對象中數據元素之間的相互關系 eg: …

深入理解python列表遍歷:兩種方法詳解與實例

新書上架~&#x1f447;全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目錄 一、引言 二、使用索引遍歷列表 三、直接使用元素遍歷列表 四、總結 一、引言 在編程過程…

創建python字典的兩種方法:直觀與函數式

新書上架~&#x1f447;全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目錄 一、直觀創建法&#xff1a;直接定義鍵值對 二、函數式創建法&#xff1a;使用內置函數dict…

CSRF 攻擊

概述 CSRF(Cross-site request forgery,跨站請求偽造)。 它是指攻擊者利用了用戶的身份信息&#xff0c;執行了用戶非本意的操作。 它首先引導用戶訪問一個危險網站&#xff0c;當用戶訪問網站后&#xff0c;網站會發送請求到被攻擊的站點&#xff0c;這次請求會攜帶用戶的c…