前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >904. 虫洞_虫洞引擎

904. 虫洞_虫洞引擎

作者头像
全栈程序员站长
发布2022-10-05 12:10:32
1890
发布2022-10-05 12:10:32
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Powered by:NEFU AB-IN

文章目录

904. 虫洞

题意

见原题

思路

看是否有负环即可

  • 别忘把所有点都入队

代码

代码语言:javascript
复制
''' Author: NEFU AB-IN Date: 2022-04-16 16:17:22 FilePath: \ACM\Acwing\904.py LastEditTime: 2022-04-16 16:17:23 '''
from collections import deque
N = 550
INF = int(1e9)
g = [[] for _ in range(N)]
dist, st, cnt = [INF] * N, [0] * N, [0] * N
def spfa():
q = deque()
for i in range(1, n + 1):
q.appendleft(i)
st[i] = 1
dist[i] = 0
while q:
u = q.pop()
st[u] = 0
for v, w in g[u]:
if dist[v] > dist[u] + w:
dist[v] = dist[u] + w
if st[v] == 0:
st[v] = 1
q.appendleft(v)
cnt[v] = cnt[u] + 1
if cnt[v] >= n:
return 1
return 0
for _ in range(int(input())):
g = [[] for _ in range(N)]
dist, st, cnt = [INF] * N, [0] * N, [0] * N
n, m, w = map(int, input().split())
for i in range(m):
u, v, t = map(int, input().split())
g[u].append([v, t])
g[v].append([u, t])
for i in range(w):
u, v, t = map(int, input().split())
g[u].append([v, -t])
if spfa():
print("YES")
else:
print("NO")

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月14日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 904. 虫洞
    • 题意
      • 思路
        • 代码
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档