Python代码求调
查看原帖
Python代码求调
1077867
SwordRain楼主2023/12/18 19:22

我的代码是基于Dijkstra写的,WA4个,其他全AC,代码如下:

import sys, heapq
input = lambda: sys.stdin.readline().strip()
def have_negative_circle(graph, s):
    seen = set()
    pqueue = [(0, s)]
    distance = {i: float('inf') for i in graph}
    distance[s] = 0
    while pqueue:
        dist, vertex = heapq.heappop(pqueue)
        seen.add(vertex)
        for node in graph[vertex]:
            Dist = dist + graph[vertex][node]
            if node in seen and Dist < distance[node]:
                return True
            if node not in seen and Dist < distance[node]:
                distance[node] = Dist
                heapq.heappush(pqueue, (Dist, node))
    return False
for _ in range(int(input())):
    n, m = map(int, input().split())
    graph = {i: {} for i in range(1, n + 1)}
    for _ in range(m):
        u, v, w = map(int, input().split())
        if w < 0:
            flag = v in graph[u]
            if not flag or flag and w < graph[u][v]:
                graph[u][v] = w
        if w >= 0:
            flag1 = u in graph[v]
            flag2 = v in graph[u]
            if not flag2 or flag2 and w < graph[u][v]:
                graph[u][v] = w
            if not flag1 or flag1 and w < graph[v][u]:
                graph[v][u] = w
    if have_negative_circle(graph, 1):
        print('YES')
    else:
        print('NO')

求助啊

2023/12/18 19:22
加载中...