結果
問題 | No.1364 [Renaming] Road to Cherry from Zelkova |
ユーザー | ophhdn |
提出日時 | 2021-08-08 12:43:23 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 714 ms / 2,500 ms |
コード長 | 2,045 bytes |
コンパイル時間 | 238 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 134,400 KB |
最終ジャッジ日時 | 2024-09-19 08:18:35 |
合計ジャッジ時間 | 16,454 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 91 ms
80,512 KB |
testcase_01 | AC | 90 ms
80,512 KB |
testcase_02 | AC | 95 ms
80,256 KB |
testcase_03 | AC | 88 ms
80,640 KB |
testcase_04 | AC | 93 ms
80,640 KB |
testcase_05 | AC | 91 ms
80,256 KB |
testcase_06 | AC | 92 ms
80,640 KB |
testcase_07 | AC | 90 ms
80,640 KB |
testcase_08 | AC | 132 ms
84,572 KB |
testcase_09 | AC | 119 ms
82,304 KB |
testcase_10 | AC | 131 ms
83,840 KB |
testcase_11 | AC | 130 ms
83,840 KB |
testcase_12 | AC | 136 ms
83,968 KB |
testcase_13 | AC | 418 ms
119,040 KB |
testcase_14 | AC | 512 ms
118,656 KB |
testcase_15 | AC | 501 ms
123,904 KB |
testcase_16 | AC | 400 ms
108,928 KB |
testcase_17 | AC | 255 ms
109,184 KB |
testcase_18 | AC | 582 ms
132,096 KB |
testcase_19 | AC | 714 ms
134,400 KB |
testcase_20 | AC | 600 ms
134,400 KB |
testcase_21 | AC | 631 ms
131,968 KB |
testcase_22 | AC | 624 ms
130,168 KB |
testcase_23 | AC | 214 ms
95,360 KB |
testcase_24 | AC | 151 ms
89,216 KB |
testcase_25 | AC | 299 ms
100,860 KB |
testcase_26 | AC | 386 ms
108,800 KB |
testcase_27 | AC | 297 ms
101,376 KB |
testcase_28 | AC | 251 ms
95,360 KB |
testcase_29 | AC | 292 ms
101,376 KB |
testcase_30 | AC | 242 ms
96,620 KB |
testcase_31 | AC | 230 ms
95,872 KB |
testcase_32 | AC | 247 ms
99,328 KB |
testcase_33 | AC | 379 ms
107,008 KB |
testcase_34 | AC | 414 ms
107,264 KB |
testcase_35 | AC | 423 ms
116,116 KB |
testcase_36 | AC | 396 ms
111,936 KB |
testcase_37 | AC | 302 ms
99,968 KB |
testcase_38 | AC | 351 ms
112,348 KB |
testcase_39 | AC | 301 ms
112,256 KB |
testcase_40 | AC | 305 ms
112,384 KB |
testcase_41 | AC | 319 ms
112,384 KB |
testcase_42 | AC | 329 ms
112,384 KB |
testcase_43 | AC | 217 ms
116,736 KB |
testcase_44 | AC | 228 ms
127,616 KB |
testcase_45 | AC | 181 ms
99,200 KB |
testcase_46 | AC | 135 ms
110,976 KB |
testcase_47 | AC | 94 ms
80,640 KB |
ソースコード
from collections import defaultdict, deque, Counter from heapq import heappush, heappop, heapify import math import bisect import random from itertools import permutations, accumulate, combinations, product import sys import string from bisect import bisect_left, bisect_right from math import factorial, ceil, floor from operator import mul from functools import reduce import pprint sys.setrecursionlimit(10 ** 9) INF = 10 ** 20 def LI(): return list(map(int, sys.stdin.readline().split())) def I(): return int(sys.stdin.readline()) def LS(): return sys.stdin.buffer.readline().rstrip().decode('utf-8').split() def S(): return sys.stdin.buffer.readline().rstrip().decode('utf-8') def IR(n): return [I() for i in range(n)] def LIR(n): return [LI() for i in range(n)] def SR(n): return [S() for i in range(n)] def LSR(n): return [LS() for i in range(n)] def SRL(n): return [list(S()) for i in range(n)] def MSRL(n): return [[int(j) for j in list(S())] for i in range(n)] mod = 10**9+7 n,m=LI() G=[[]for _ in range(n+1)] for _ in range(m): u,v,l,a=LI() G[u]+=[(v,l,a)] def topological_sort(G): n = len(G) in_degree = [0] * n for u in range(n): for v,_,_ in G[u]: in_degree[v] += 1 topological_order = [] que = deque() for i in range(n): if in_degree[i] == 0: que += [i] while que: u = que.pop() topological_order += [u] for v,_,_ in G[u]: in_degree[v] -= 1 if in_degree[v] == 0: que += [v] return topological_order q=deque([0]) D=[0]*(n+1) D2=[0]*(n+1) D2[0]=1 D[0]=0 order=topological_sort(G) s=set() for ui in order: s.add(ui) for vi,li,ai in G[ui]: D[vi]+=(D[ui]+D2[ui]*li)*ai%mod D[vi]%=mod D2[vi]+=D2[ui]*ai D2[vi]%=mod qq=[0] D3=[0]*(n+1) D3[0]=1 while qq: uk=qq.pop() for vk,_,_ in G[uk]: if D3[vk]: continue D3[vk]=1 qq+=[vk] if not D2[n] and D3[n]: print("INF") else: print(D[n])