补题报告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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…