結果
問題 | No.1344 Typical Shortest Path Sum |
ユーザー | itsy68 |
提出日時 | 2022-06-10 03:39:23 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 2,183 bytes |
コンパイル時間 | 235 ms |
コンパイル使用メモリ | 82,440 KB |
実行使用メモリ | 69,752 KB |
最終ジャッジ日時 | 2024-09-21 05:41:31 |
合計ジャッジ時間 | 7,838 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | RE | - |
testcase_01 | RE | - |
testcase_02 | RE | - |
testcase_03 | RE | - |
testcase_04 | RE | - |
testcase_05 | RE | - |
testcase_06 | RE | - |
testcase_07 | RE | - |
testcase_08 | RE | - |
testcase_09 | RE | - |
testcase_10 | RE | - |
testcase_11 | RE | - |
testcase_12 | RE | - |
testcase_13 | RE | - |
testcase_14 | RE | - |
testcase_15 | RE | - |
testcase_16 | RE | - |
testcase_17 | RE | - |
testcase_18 | RE | - |
testcase_19 | RE | - |
testcase_20 | RE | - |
testcase_21 | RE | - |
testcase_22 | RE | - |
testcase_23 | RE | - |
testcase_24 | RE | - |
testcase_25 | RE | - |
testcase_26 | RE | - |
testcase_27 | RE | - |
testcase_28 | RE | - |
testcase_29 | RE | - |
testcase_30 | RE | - |
testcase_31 | RE | - |
testcase_32 | RE | - |
testcase_33 | RE | - |
testcase_34 | RE | - |
testcase_35 | RE | - |
testcase_36 | RE | - |
testcase_37 | RE | - |
testcase_38 | RE | - |
testcase_39 | RE | - |
testcase_40 | RE | - |
testcase_41 | RE | - |
testcase_42 | RE | - |
testcase_43 | RE | - |
testcase_44 | RE | - |
testcase_45 | RE | - |
testcase_46 | RE | - |
testcase_47 | RE | - |
testcase_48 | RE | - |
testcase_49 | RE | - |
testcase_50 | RE | - |
testcase_51 | RE | - |
testcase_52 | RE | - |
testcase_53 | RE | - |
testcase_54 | RE | - |
testcase_55 | RE | - |
testcase_56 | RE | - |
testcase_57 | RE | - |
testcase_58 | RE | - |
testcase_59 | RE | - |
testcase_60 | RE | - |
testcase_61 | RE | - |
testcase_62 | RE | - |
testcase_63 | RE | - |
testcase_64 | RE | - |
testcase_65 | RE | - |
testcase_66 | RE | - |
testcase_67 | RE | - |
testcase_68 | RE | - |
testcase_69 | RE | - |
testcase_70 | RE | - |
testcase_71 | RE | - |
testcase_72 | RE | - |
testcase_73 | RE | - |
testcase_74 | RE | - |
testcase_75 | RE | - |
testcase_76 | RE | - |
testcase_77 | RE | - |
testcase_78 | RE | - |
testcase_79 | RE | - |
ソースコード
# import pypyjit # pypyjit.set_param('max_unroll_recursion=-1') import sys from itertools import combinations, permutations, product, accumulate, groupby from collections import defaultdict, deque, Counter from functools import reduce from operator import add, mul import heapq import bisect import math import copy from sklearn.cluster import ward_tree sys.setrecursionlimit(10 ** 9) input = lambda: sys.stdin.readline().rstrip() INF = float("inf") MOD = 10 ** 9 + 7 class WarshallFloyd(): def __init__(self, N): self.N = N self.d = [[float("inf") for i in range(N)] for i in range(N)] # d[u][v] : 辺uvのコスト(存在しないときはinf) def add(self, u, v, c, directed=False): """ 0-indexedであることに注意 u = from, v = to, c = cost directed = Trueなら、有向グラフである """ if directed is False: self.d[u][v] = min(c, self.d[u][v]) self.d[v][u] = min(c, self.d[v][u]) else: self.d[u][v] = min(c, self.d[u][v]) def WarshallFloyd_search(self): # これを d[i][j]: iからjへの最短距離 にする # 本来無向グラフでのみ全域木を考えるが、二重辺なら有向でも行けそう # d[i][i] < 0 なら、グラフは負のサイクルを持つ for k in range(self.N): for i in range(self.N): for j in range(self.N): self.d[i][j] = min( self.d[i][j], self.d[i][k] + self.d[k][j]) hasNegativeCycle = False for i in range(self.N): if self.d[i][i] < 0: hasNegativeCycle = True break for i in range(self.N): self.d[i][i] = 0 return hasNegativeCycle, self.d N, M = map(int ,input().split()) STD = [list(map(int, input().split())) for i in range(M)] graph = WarshallFloyd(N) for s, t, d in STD: graph.add(s-1, t-1, d, True) _, d = graph.WarshallFloyd_search() for i in range(N): for j in range(N): if d[i][j] == INF: d[i][j] = 0 for i in range(N): print(sum(d[i]))