求助floyd TLE 了4个点
查看原帖
求助floyd TLE 了4个点
920795
Rhea___楼主2023/3/13 19:13
import sys
n,m=map(int,input().split())
s=list(map(int,sys.stdin.readline().split()))
T =[[s[i],i]for i in range(n)]
T.sort(key=lambda x:x[0])
T_f=[0]*n
data=[[float('inf') for i in range(n)] for i in range(n)]
for i in range(m):
    a,b,l=map(int,sys.stdin.readline().split())
    data[a][b]=l
    data[b][a]=l
Q=int(input())
t0=0
for i in range(Q):
    #print(data)
    x,y,t=map(int,input().split())
    pool=[]
    for j in range(t0,len(T)):
        if t>=T[j][0]:
            pool.append(T[j][1])
            T_f[T[j][1]]=1
        else:
            t0=j
            break
    for i in pool:
        for j in range(n):
            for z in range(n):
                data[j][z]=min(data[j][z],data[j][i]+data[i][z])
    if T_f[x]==T_f[y]==1 and data[x][y]<=100000:
        print(data[x][y])
    else:
        print('-1')
                     
2023/3/13 19:13
加载中...