Day 64 卡瑪筆記

這是基于代碼隨想錄的每日打卡

參加科學大會(第六期模擬筆試)

題目描述

? 小明是一位科學家,他需要參加一場重要的國際科學大會,以展示自己的最新研究成果。

? 小明的起點是第一個車站,終點是最后一個車站。然而,途中的各個車站之間的道路狀況、交通擁堵程度以及可能的自然因素(如天氣變化)等不同,這些因素都會影響每條路徑的通行時間。

? 小明希望能選擇一條花費時間最少的路線,以確保他能夠盡快到達目的地。

輸入描述

? 第一行包含兩個正整數,第一個正整數 N 表示一共有 N 個公共汽車站,第二個正整數 M 表示有 M 條公路。

? 接下來為 M 行,每行包括三個整數,S、E 和 V,代表了從 S 車站可以單向直達 E 車站,并且需要花費 V 單位的時間。

輸出描述

? 輸出一個整數,代表小明從起點到終點所花費的最小時間。

輸入示例
7 9
1 2 1
1 3 4
2 3 2
2 4 5
3 4 2
4 5 3
2 6 4
5 7 4
6 7 9
輸出示例
12
提示信息

? 能夠到達的情況:

? 如下圖所示,起始車站為 1 號車站,終點車站為 7 號車站,綠色路線為最短的路線,路線總長度為 12,則輸出 12。

?

? img

? 不能到達的情況:

? 如下圖所示,當從起始車站不能到達終點車站時,則輸出 -1。

?

? img

?

? 數據范圍:

? 1 <= N <= 500;
1 <= M <= 5000;


堆優化版

import heapq
n,m=map(int,input().split())
graph=[[float('inf') for _ in range(n+1)] for _ in range(n+1)]
visited=[False for _ in range(n+1)]
minDist=[float('inf') for _ in range(n+1)]
for _ in range(m):s,e,t=map(int,input().split())graph[s][e]=tminDist[1]=0
hq=[(0,1)]while hq:# 選擇一個離源點最近的節點且未被訪問過min_dist,cur=heapq.heappop(hq)# 該最近節點標記為訪問過visited[cur]=True# 更新非訪問節點到源點的距離for j in range(1,n+1):if visited[j]==False and min_dist+graph[cur][j]<minDist[j]:minDist[j]=min_dist+graph[cur][j]heapq.heappush(hq,(minDist[j],j))
if minDist[-1]==float('inf'):print(-1)
else:print(minDist[-1])

運行結果

在這里插入圖片描述



城市間貨物運輸 I

題目描述

? 某國為促進城市間經濟交流,決定對貨物運輸提供補貼。共有 n 個編號為 1 到 n 的城市,通過道路網絡連接,網絡中的道路僅允許從某個城市單向通行到另一個城市,不能反向通行。

? 網絡中的道路都有各自的運輸成本和政府補貼,道路的權值計算方式為:運輸成本 - 政府補貼。權值為正表示扣除了政府補貼后運輸貨物仍需支付的費用;權值為負則表示政府的補貼超過了支出的運輸成本,實際表現為運輸過程中還能賺取一定的收益。

? 請找出從城市 1 到城市 n 的所有可能路徑中,綜合政府補貼后的最低運輸成本。如果最低運輸成本是一個負數,它表示在遵循最優路徑的情況下,運輸過程中反而能夠實現盈利。

? 城市 1 到城市 n 之間可能會出現沒有路徑的情況,同時保證道路網絡中不存在任何負權回路。

輸入描述

? 第一行包含兩個正整數,第一個正整數 n 表示該國一共有 n 個城市,第二個整數 m 表示這些城市中共有 m 條道路。

? 接下來為 m 行,每行包括三個整數,s、t 和 v,表示 s 號城市運輸貨物到達 t 號城市,道路權值為 v (單向圖)。

輸出描述

如果能夠從城市 1 到連通到城市 n, 請輸出一個整數,表示運輸成本。如果該整數是負數,則表示實現了盈利。如果從城市 1 沒有路徑可達城市 n,請輸出 “unconnected”。

輸入示例
6 7
5 6 -2
1 2 1
5 3 1
2 5 2
2 4 -3
4 6 4
1 3 5
輸出示例
1
提示信息

? img

? 示例中最佳路徑是從 1 -> 2 -> 5 -> 6,路上的權值分別為 1 2 -2,最終的最低運輸成本為 1 + 2 + (-2) = 1。

? 示例 2:

? 4 2
1 2 -1
3 4 -1

? 在此示例中,無法找到一條路徑從 1 通往 4,所以此時應該輸出 “unconnected”。

? 數據范圍:

? 1 <= n <= 1000;
1 <= m <= 10000;

? -100 <= v <= 100;


Bellman_ford算法

n,m=map(int,input().split())
minDist=[float('inf') for _ in range(n+1)]    # 表示節點n到原點的最小距離
minDist[1]=0
sides=[list(map(int,input().split())) for _ in range(m)]for _ in range(n-1):    # 松弛n-1次updated=Falsefor start,end,value in sides:if minDist[start]+value<minDist[end]:minDist[end]=minDist[start]+valueupdated=Trueif updated==False:breakif minDist[-1]!=float('inf'):print(minDist[-1])
else:print('unconnected')

運行結果

在這里插入圖片描述

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

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

相關文章

《C語言中\0:字符串的神秘“終結者”》

&#x1f680;個人主頁&#xff1a;BabyZZの秘密日記 &#x1f4d6;收入專欄&#xff1a;C語言 &#x1f30d;文章目入 引言一、字符串的定義與存儲二、\0&#xff1a;字符串的終結標志三、\0在字符串操作中的作用四、\0的陷阱與注意事項五、\0與字符串的動態分配六、總結 引言…

九、Prometheus 監控windows(外部)主機

一、監控 Windows 主機的方法 方式 1:使用 Windows Exporter Windows Exporter(wmi_exporter) 是 Prometheus 官方推薦的 Windows 監控工具,它可以采集 CPU、內存、磁盤、網絡、進程、服務狀態等 指標。 方式 2:使用 Node Exporter for Windows node_exporter 主要用于…

TCP/IP協議中三次握手(Three-way Handshake)與四次揮手(Four-way Wave)

TCP/IP協議中三次握手&#xff08;Three-way Handshake&#xff09;與四次揮手&#xff08;Four-way Wave&#xff09; 一、TCP三次握手&#xff08;Three-way Handshake&#xff09;二、TCP四次揮手&#xff08;Four-way Wave&#xff09;三、常見問題解答總結為什么三次握手不…

Java集成WebSocket實現消息推送,詳細步驟以及出現的問題如何解決

Java集成WebSocket實現消息推送 WebSocket是一種在單個TCP連接上進行全雙工通信的協議,非常適合實現實時消息推送功能。與傳統的HTTP請求-響應模式不同,WebSocket建立連接后可以保持長連接狀態,服務器可以主動向客戶端推送數據,這使得它成為實現聊天應用、通知系統和實時數…

如何在Linux中切換用戶?

Linux切換用戶 在Linux系統中&#xff0c;切換用戶可以通過使用su命令和sudo命令實現 1、su命令 su是switch user的縮寫&#xff0c;用于切換到另一個用戶。su命令的語法如下&#xff1a; su [選項] [用戶名]以下是一些示例&#xff1a; # 切換到root用戶 su - # 切換到指定…

網頁制作16-Javascipt時間特效の設置D-DAY倒計時

01、效果圖 02、應用 new Date()//返回今天日期 new Date("April 1,2025")//返回目標日期 document.write()//文檔顯示 getTime()返回當日毫秒數 Math.floor(amadays / (1000 * 60 * 60 * 24)//把毫秒換算天 03、代碼 <!doctype html> <html> &…

c#Winform也可以跨平臺了GTK框架GTKSystem.Windows.Forms

一、簡介 >> 新版下載&#xff0c;問題求助 QQ群&#xff1a;1011147488 1032313876 236066073&#xff08;滿&#xff09; Visual Studio原生開發&#xff0c;無需學習&#xff0c;一次編譯&#xff0c;跨平臺運行. C#桌面應用程序跨平臺&#xff08;windows、linux、…

`lower_bound`、`upper_bound` 和 `last_less_equal`

lower_bound、upper_bound 和 last_less_equal。它們的作用是在 有序數組 中查找目標值的位置。下面是對每個函數的詳細解釋&#xff1a; 1. lower_bound 函數 功能&#xff1a; 在有序數組 a 中查找第一個 大于或等于 target 的元素的位置。 參數&#xff1a; a[]&#xf…

網絡安全常識科普(百問百答)

汪乙己一到店&#xff0c;所有喝酒的人便都看著他笑&#xff0c;有的叫道&#xff0c;“汪乙己&#xff0c;你又監控員工隱私了&#xff01;”他不回答&#xff0c;對柜里說&#xff0c;“來兩個fofa。”便排出三個比特幣。他們又故意的高聲嚷道&#xff0c;“你一定又在電報群…

JSON 序列化 反序列化

序列化&#xff0c;反序列化 其實就是轉換數據格式的過程。 序列化 (Serialization) 是將【對象的狀態信息】轉換為【可以存儲或傳輸的形式】的過程。即&#xff1a;把C#中的類 轉換成 JSON格式的字符串&#xff0c;就是序列化。其中【對象的狀態信息】就是類的各種屬性。 …

如何優化AI模型的Prompt:深度指南

隨著人工智能&#xff08;AI&#xff09;技術的快速發展&#xff0c;AI模型在文本生成、翻譯、問答等領域的應用越來越廣泛。在使用這些模型時&#xff0c;**Prompt&#xff08;提示&#xff09;**的質量直接影響輸出結果的好壞。優化Prompt不僅能提升生成文本的準確性&#xf…

五大基礎算法——模擬算法

模擬算法 是一種通過直接模擬問題描述的過程或規則來解決問題的算法思想。它通常用于解決那些問題描述清晰、步驟明確、可以直接按照規則逐步實現的問題。以下是模擬算法的核心概念、適用場景、實現方法及經典例題&#xff1a; 一、核心概念 問題描述清晰 問題的規則和步驟明確…

【DeepSeek應用】DeepSeek模型本地化部署方案及Python實現

DeepSeek實在是太火了,雖然經過擴容和調整,但反應依舊不穩定,甚至小圓圈轉半天最后卻提示“服務器繁忙,請稍后再試。” 故此,本文通過講解在本地部署 DeepSeek并配合python代碼實現,讓你零成本搭建自己的AI助理,無懼任務提交失敗的壓力。 一、環境準備 1. 安裝依賴庫 …

過濾空格(信息學奧賽一本通-2047)

【題目描述】 過濾多余的空格。一個句子中也許有多個連續空格&#xff0c;過濾掉多余的空格&#xff0c;只留下一個空格。 【輸入】 一行&#xff0c;一個字符串&#xff08;長度不超過200&#xff09;&#xff0c;句子的頭和尾都沒有空格。 【輸出】 過濾之后的句子。 【輸入樣…

一周學會Flask3 Python Web開發-SQLAlchemy更新數據操作-班級模塊

鋒哥原創的Flask3 Python Web開發 Flask3視頻教程&#xff1a; 2025版 Flask3 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili list.html頁面&#xff0c;加一個更新操作超鏈接&#xff1a; <!DOCTYPE html> <html lang"en"> <…

.NET Framework華為云流水線發布

文章目錄 前言一、新建代碼檢查二、新建編譯構建三、新建部署三、新建流水線 前言 華為云流水線發布&#xff1a;自動檢查代碼&#xff0c;打包發布到服務器 一、新建代碼檢查 檢查代碼是否存在報錯 設置規則集 二、新建編譯構建 三、新建部署 模板選擇空模板或者自己去創建…

ngx_event_conf_t

ngx_event_conf_t 定義在 src\event\ngx_event.h typedef struct {ngx_uint_t connections;ngx_uint_t use;ngx_flag_t multi_accept;ngx_flag_t accept_mutex;ngx_msec_t accept_mutex_delay;u_char *name;#if (NGX_DEBUG)ngx_array_t debug_conne…

React19源碼系列之createRoot的執行流程是怎么的?

2024年12月5日&#xff0c;react發布了react19版本。后面一段時間都將學習它的源碼&#xff0c;并著手記錄。 react官網&#xff1a;react19新特性 https://react.dev/blog/2024/12/05/react-19 在用vite創建react項目的使用&#xff0c;main.tsx主文件都會有以下代碼。 //i…

設備管理VTY(Telnet、SSH)

實驗目的&#xff1a;物理機遠程VTY通過telnet協議登錄AR1,ssh協議登錄AR2和sw 注意配置Cloud1&#xff1a; 注意&#xff01;&#xff01;博主的物理機VMnet8--IP&#xff1a;192.168.160.1&#xff0c;所以AR1路由0/0/0端口才添加IP&#xff1a;192.168.160.3&#xff0c;每個…

使用VisualStdio制作上位機(一)

文章目錄 使用VisualStudio制作上位機(一)寫在前面第一部分:創建應用程序第二部分:GUI主界面設計使用VisualStudio制作上位機(一) Author:YAL 做了一些補充更新,2025-3-16 寫在前面 1.達到什么目的呢 本文主要講怎么通過Visual Studio 制作上位機,全文會以制作過程…