news 2026/6/21 10:52:21

UVa 558 Wormholes

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UVa 558 Wormholes

题目描述

Wormholes\texttt{Wormholes}Wormholes题目要求判断给定的有向图中是否存在负权环。图中节点表示星系统,边表示虫洞,边权表示时间变化(正数为未来,负数为过去)。若能通过某个环回到过去(即总时间变化为负),则可以无限回溯时间。需要判断是否存在这样的环。

输入格式

第一行一个整数ccc,表示测试用例的数量。每个测试用例第一行包含两个整数nnn1≤n≤10001 \le n \le 10001n1000)和mmm0≤m≤20000 \le m \le 20000m2000)。接下来mmm行,每行三个整数xxxyyyttt−1000≤t≤1000-1000 \le t \le 10001000t1000),表示从xxxyyy的虫洞,时间变化为ttt

输出格式

对于每个测试用例,输出一行possiblenot possible

样例

输入

2 3 3 0 1 1000 1 2 15 2 1 -42 4 4 0 1 10 1 2 20 2 3 30 3 0 -60

输出

possible not possible

题目分析

本题的核心是检测有向图中是否存在负权环。可以使用Bellman-Ford\texttt{Bellman-Ford}Bellman-FordSPFA\texttt{SPFA}SPFA算法。

算法

  • 从源点000开始运行SPFA\texttt{SPFA}SPFA
  • 若某个节点入队次数超过nnn,则存在负权环。

复杂度分析

SPFA\texttt{SPFA}SPFA最坏O(n×m)O(n \times m)O(n×m)n≤1000n \le 1000n1000m≤2000m \le 2000m2000,可接受。

代码实现

// Wormholes// UVa ID: 558// Verdict: Accepted// Submission Date: 2017-10-24// UVa Run Time: 0.030s//// 版权所有(C)2017,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;constintMAXV=1100,MAXE=100010,INF=0x3f3f3f3f;structedge{intfrom,to,weight,next;}edges[MAXE];intn,m,head[MAXV];intdist[MAXV],parent[MAXV],visited[MAXV],counter[MAXV];boolspfa(intsource){for(inti=0;i<n;i++)dist[i]=INF,parent[i]=-1,visited[i]=0,counter[i]=0;dist[source]=0,visited[source]++;queue<int>q;q.push(source);while(!q.empty()){intu=q.front();q.pop();if(counter[u]>n)returntrue;for(inti=head[u];~i;i=edges[i].next){intv=edges[i].to,w=edges[i].weight;if(dist[v]>dist[u]+w){dist[v]=dist[u]+w,parent[v]=u;if(!visited[v])q.push(v),visited[v]++,counter[v]++;}}visited[u]--;}returnfalse;}intmain(intargc,char*argv[]){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);intcases,x,y,t;cin>>cases;for(intc=1;c<=cases;c++){cin>>n>>m;memset(head,-1,sizeof(head));for(inti=0;i<m;i++){cin>>x>>y>>t;edges[i]=edge{x,y,t,head[x]};head[x]=i;}cout<<(spfa(0)?"possible\n":"not possible\n");}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 10:48:44

嵌入式GUI开发:emWin内存设备与多任务模型实战解析

1. 内存设备&#xff1a;从屏幕闪烁到流畅渲染的底层逻辑在嵌入式GUI开发里&#xff0c;屏幕闪烁是个老生常谈但又极其恼人的问题。你肯定见过那种界面&#xff0c;一个进度条在动&#xff0c;或者一个仪表指针在转&#xff0c;整个屏幕跟着一块一块地刷新&#xff0c;看起来像…

作者头像 李华
网站建设 2026/6/21 10:48:00

SCF5250外设实战:定时器与ADC寄存器级配置与调试指南

1. 项目概述与核心价值在嵌入式开发的日常工作中&#xff0c;我们打交道最多的往往不是那些高深的算法&#xff0c;而是芯片手册里密密麻麻的寄存器。能把一个微控制器的外设玩得转&#xff0c;项目就成功了一大半。今天&#xff0c;我们就以Freescale&#xff08;现NXP&#x…

作者头像 李华
网站建设 2026/6/21 10:47:04

嵌入式通信开发:PDK软件支持体系与升级维护实战指南

1. 项目概述与核心价值 在嵌入式通信系统开发&#xff0c;尤其是涉及复杂协议栈&#xff08;如VoIP、SIP、RTP&#xff09;的领域&#xff0c;一个稳定、可靠且能持续演进的软件开发套件&#xff08;SDK&#xff09;是项目成功的基石。今天要聊的&#xff0c;就是围绕Freescale…

作者头像 李华
网站建设 2026/6/21 10:44:09

LangChain生产级RAG落地指南:向量化、两阶段与Agentic架构

1. 这不是又一个“三行代码跑通RAG”的玩具项目你肯定见过那种教程&#xff1a;pip install langchain&#xff0c;加载一个PDF&#xff0c;调用as_retriever()&#xff0c;最后print(chain.invoke("什么是LangChain&#xff1f;"))——然后配一句“RAG已上线&#x…

作者头像 李华
网站建设 2026/6/21 10:44:09

智能生产调度系统接口自动化测试框架:Pytest实战与CI/CD集成

1. 项目概述&#xff1a;当智能调度遇上自动化测试最近在负责一个智能生产调度系统的项目&#xff0c;这个系统简单来说&#xff0c;就是工厂的“AI大脑”。它需要实时处理来自MES&#xff08;制造执行系统&#xff09;、ERP&#xff08;企业资源计划&#xff09;、设备传感器等…

作者头像 李华
网站建设 2026/6/21 10:39:32

嵌入式GUI硬件加速实战:emWin接口详解与STM32 DMA2D优化

1. 项目概述&#xff1a;为什么嵌入式GUI需要硬件加速&#xff1f; 在嵌入式系统里做图形界面开发&#xff0c;一个绕不开的痛点就是性能。你精心设计的UI&#xff0c;在开发板上跑起来却卡顿、拖影&#xff0c;动画一多就掉帧&#xff0c;这体验实在说不上好。问题的根源&…

作者头像 李华