補題報告08

?

題目背景

某天,奇異博士在紐約圣所研究維山帝之書時,發現了連接不同多元宇宙的傳送門網絡......

題目描述

經研究,奇異博士發現每個傳送門都有固定的 “時間代價”—— 正數表示雙向通行(往返時間代價相同均為正值),負數表示單向通行(從起點到終點的時間代價為負值)。

當存在一條從主宇宙出發,最終返回主宇宙的路徑,且總時間代價減少時,就會引發時間悖論(旅行者可以通過循環該路徑讓時間無限倒流)。

請判斷某次奇異博士規劃的路線中是否存在這樣的時間悖論路徑。

注意:奇異博士當前所處的紐約圣所是編號為 1 的主宇宙,且各多元宇宙是互通的

輸入格式

第一行包含整數T,表示測試用例數量。

每個測試用例的第一行包含兩個整數 n 和 m,分別表示多元宇宙的數量(編號 1~n)和傳送門的數量。

接下來 m 行,每行包含三個整數a, b, c, 表示一個傳送門:

  • 若c ≥ 0:該傳送門雙向通行,從 a 到 b 和從 b 到 a 的時間代價均為 c
  • 若c < 0:該傳送門單向通行,僅能從 a 到 b,時間代價為 c

輸出格式

對于每個測試用例,若存在引發時間悖論的路徑,輸出 “YES”,否則輸出 “NO”。

輸入輸出樣例

輸入

2
3 3
1 2 1
2 3 2
3 1 -4
3 3
1 2 1
2 3 2
3 1 4

輸出?

YES
NO

說明/提示

對于全部的測試點,保證:

  • 1 ≤ T ≤ 10

  • 1 ≤ n ≤ 2×103,1 ≤ m ≤ 4×10^3

  • 1 ≤ a,b ≤n,?10^4 ≤ c ≤1 0^4

解題思路

判斷是否存在從主宇宙(節點1)出發并返回的路徑,且總時間代價為負(時間減少),這樣的路徑會導致時間悖論。這個問題等價于在圖中檢測是否存在從節點1可達的負權環。可以使用SPFA算法來檢測負權環。使用鄰接表存儲圖結,節點1距離為0,其他節點距離為無窮大,使用隊列進行松弛操作,如果某個節點被松弛的次數超過節點總數n,說明存在負權環。檢測到負權環 → 輸出"YES"(存在時間悖論),未檢測到負權環 → 輸出"NO"(不存在時間悖論)。

解決代碼

#include <iostream>
#include <vector>
#include <queue>
#include <climits>
using namespace std;struct Edge {int to;int cost;
};bool hasNegativeCycle(int n, vector<vector<Edge>>& graph) {vector<int> dist(n+1, INT_MAX);vector<int> count(n+1, 0);vector<bool> inQueue(n+1, false);queue<int> q;dist[1] = 0;q.push(1);inQueue[1] = true;while (!q.empty()) {int u = q.front();q.pop();inQueue[u] = false;for (const Edge& e : graph[u]) {int v = e.to;int cost = e.cost;if (dist[u] != INT_MAX && dist[u] + cost < dist[v]) {dist[v] = dist[u] + cost;if (!inQueue[v]) {q.push(v);inQueue[v] = true;count[v]++;if (count[v] > n) {return true;}}}}}return false;
}int main() {int T;cin >> T;while (T--) {int n, m;cin >> n >> m;vector<vector<Edge>> graph(n+1);for (int i = 0; i < m; i++) {int a, b, c;cin >> a >> b >> c;if (c >= 0) {graph[a].push_back({b, c});graph[b].push_back({a, c});} else {graph[a].push_back({b, c});}}if (hasNegativeCycle(n, graph)) {cout << "YES" << endl;} else {cout << "NO" << endl;}}return 0;
}

?

?

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

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

相關文章

馬斯克殺入AI編程!xAI新模型Grok Code Fast 1發布,深度評測:速度、價格與API上手指南

AI 編程的賽道&#xff0c;又迎來一位重量級玩家——馬斯克的 xAI。 就在最近&#xff0c;xAI 悄然發布了一款專為編碼而生的新模型&#xff1a;Grok Code Fast 1。這款模型最初以代號“Sonic”在內部流傳&#xff0c;如今正式亮相&#xff0c;便憑借其 256K 超長上下文、驚人的…

GaussDB 數據庫架構師修煉(十八) SQL引擎-計劃管理-SPM

1 背景由于業務數據的變化或者數據庫版本的升級&#xff0c;可能導致SQL的執行計劃發生變化&#xff0c;這種變化不一定是正收益&#xff0c;這時需 要一個防止計劃劣化的機制。該機制需適用于版本升級時固化計劃防止計劃跳變等場景。2 SPM 的功能SPM(SQL Plan Manager)功能&a…

數字IC前端設計——前仿篇(VCS,DVE,Verdi)

文章目錄引言一、軟件介紹1. VCS2. DVE3. Verdi二、VCS的使用1. VCS的編譯流程2. 常用的編譯選項1&#xff09;基礎編譯選項2&#xff09;調試相關選項3&#xff09;性能優化選項4&#xff09;文件和路徑選項3. 常用仿真選項1&#xff09;基礎仿真選項2&#xff09;運行控制選項…

20250826--inter

一、非對稱加密的應用 非對稱加密應用-CSDN博客 2、怎么避免跨站腳本攻擊&#xff0c;包括還有其他的一些web安全&#xff0c;怎么做的 網頁安全XSS攻擊和CSRF攻擊_csrf共計-CSDN博客 3、前端異常監控&#xff0c;性能監控&#xff0c;埋點&#xff0c;怎么做的 &#xff1f…

MongoDB Shell

MongoDB官方提供的單獨命令行工具 MongoDB Shell Download | MongoDB 下載MongoDB Shell windows系統打開&#xff0c;直接在解壓后的目錄里面找到bin目錄 然后雙擊打開mongosh.exe這個文件 看到這個命令行就表示Mongo Shell已經啟動成功了 test代表 當前正在使用的數據庫的…

Docker03-知識點整理

Docker03-知識點整理 文章目錄Docker03-知識點整理1-參考網址2-知識整理2-思考題1-Docker image和Docker Native image有什么區別1. Docker Image&#xff08;Docker 鏡像&#xff09;定義特點構建和使用示例2. Docker Native Image&#xff08;通常指 GraalVM Native Image 結…

華為 eNSP 從入門到精通:企業級網絡仿真全攻略

一、eNSP 簡介華為 eNSP&#xff08;Enterprise Network Simulation Platform &#xff09;是面向企業網絡的虛擬化仿真平臺&#xff0c;其核心架構基于分布式虛擬化引擎和真實設備鏡像&#xff0c;具備以下技術亮點&#xff1a;高度仿真&#xff1a;可模擬華為 AR 路由器、x7 …

docker compose設置命令別名的方法

docker compose名字比較長&#xff0c;輸入比較費事&#xff0c;可以為它設置別名來簡化輸入。1、Linux編輯~/.bash_aliasesalias dcdocker-compse編輯~/.bashrc&#xff0c;確認其包含以下內容&#xff1a;if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi重新加載 ~/.bas…

【RAGFlow代碼詳解-10】文本處理和查詢處理

概述 文本處理和查詢處理系統將自然語言查詢轉換為與 RAGFlow 的文檔存儲后端配合使用的優化搜索表達式。該系統支持中英文文本處理&#xff0c;具有專門的標記化、術語加權和查詢增強技術。核心組件 FulltextQueryer 類 FulltextQueryer 類是查詢處理和文本分析的主要接口。它…

利用機器學習優化Backtrader策略原理與實踐

1. Backtrader框架概述 1.1 Backtrader簡介 Backtrader是一個功能強大且靈活的Python庫&#xff0c;專為量化交易策略的開發、測試和執行而設計。它提供了豐富的功能&#xff0c;包括數據獲取、策略開發、回測、優化和繪圖等。Backtrader的核心優勢在于其模塊化設計和高度可擴展…

CPTS-Pressed復現(XML-RPC)

該box主要是了解wordpress-XML-RPC 的使用 端口掃描只有80端口開啟 可以使用wpscan進行掃描發現bak文件得到憑證&#xff0c;嘗試登陸&#xff08;這里是將原密碼的2021修改為2022嘗試登陸&#xff0c;該主機發布時間為2022年&#xff09;發現有2FA&#xff0c;但是能夠濫用 xm…

【機器學習深度學習】Embedding 與 RAG:讓 AI 更“聰明”的秘密

目錄 前言 一、RAG 的兩大階段 1. 知識庫構建階段 2. 查詢檢索與生成階段 二、為什么 RAG 比單純大模型更靠譜&#xff1f; 四、Embedding 在 RAG 中的作用 五、Embedding 的優勢 六、Embedding 的挑戰 七、RAG 優勢與挑戰對比 八、應用場景舉例 總結 前言 在大模型…

python 轉偶數

目錄 python變量轉偶數 box轉偶數 python變量轉偶數 x1 int(x1) // 2 * 2 y1 int(y1) // 2 * 2 x2 int(x2) // 2 * 2 y2 int(y2) // 2 * 2 box轉偶數 def save_mp4(output_path,box_list,img_list,clip_start,clip_end):writer imageio.get_writer(output_path,fps30,c…

Linux - 中文顯示亂碼問題解決方法(編碼查看及轉換)- 學習/實踐

1.應用場景 主要用于Linux中文顯示亂碼問題解決(編碼查看及轉換&#xff09; 2.學習/操作 1.文檔閱讀 Linux中文顯示亂碼問題解決方法(編碼查看及轉換&#xff09; - 整合俠 - 博客園 截圖&#xff1a; 2.整理輸出 TBD 后續補充 ... 3.問題/補充 TBD 后續補充 ...…

網絡_協議

關鍵詞&#xff1a; OSI是Open System Interconnect的縮寫&#xff0c;意為開放式系統互聯。 RTT &#xff1a; Round-Trip time 往返時間 RTO&#xff1a;Retransmission Timeout超時重傳時間 MSL : OSI 七層模型和 TCP/IP 四層模型 OSI七層模型和TCP/IP五層模型&#…

vscode有的結構體不能補全,有的可以補全問題的解決.

定義了一個結構體,發現不能自動補全變量名稱.而另外一個結構體卻可以正常補全.經過研究發現是,新定義的結構體變量類型uint32_t,vscode認為其是錯誤類型導致的.暫時改為int型,后發現問題消失.可以正常補全了.由于工程使用cubeide生成,uint32_t定義在軟件安裝目錄,并沒有和項目文…

JavaScript 數組核心操作實戰:最值獲取與排序實現(從基礎到優化)

在JavaScript開發中&#xff0c;數組的“最值獲取”和“排序”是高頻需求。本文將基于你的原始代碼&#xff0c;系統解析數組最值獲取、升序/降序排序的實現邏輯&#xff0c;通過“問題分析→代碼優化→原理講解”的流程&#xff0c;幫助你掌握更靈活、高效的數組操作方法&…

driver.js實現前端頁面引導

1.安裝 npm install driver.js2.實現代碼示例 <template><div class"home-container"><!-- 頁面內容 --><LeftPanel id"guide-left-panel" /><button id"guide-file-upload">文件上傳</button><button i…

技術速遞|使用 AI 應用模板擴展創建一個 .NET AI 應用與自定義數據進行對話

在本快速入門中&#xff0c;你將學習如何使用 .NET AI 應用模板創建一個 .NET AI 應用&#xff0c;與自定義數據進行對話。該模板旨在簡化 .NET 構建 AI 應用的上手體驗&#xff0c;幫助你處理常見的設置任務和配置。 先決條件 .NET 9.0 SDK 以下任一 IDE&#xff08;可選&am…