結果
問題 | No.1103 Directed Length Sum |
ユーザー |
![]() |
提出日時 | 2020-07-05 20:43:20 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 741 bytes |
コンパイル時間 | 425 ms |
コンパイル使用メモリ | 82,240 KB |
実行使用メモリ | 463,072 KB |
最終ジャッジ日時 | 2024-09-22 21:07:55 |
合計ジャッジ時間 | 10,608 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 3 TLE * 1 -- * 18 |
ソースコード
import sys input=lambda: sys.stdin.readline().rstrip() n=int(input()) deg=[0]*n edge=[[] for _ in range(n)] edge_r=[[] for _ in range(n)] E=[] for _ in range(n-1): a,b=map(int,input().split()) edge[a-1].append(b-1) edge_r[b-1].append(a-1) E.append((a-1,b-1)) deg[b-1]+=1 from collections import deque TS = list(v for v in range(n) if deg[v]==0) deq = deque(TS) used = [0]*n while deq: v = deq.popleft() for t in edge[v]: deg[t] -= 1 if deg[t]==0: deq.append(t) TS.append(t) L,R=[0]*n,[0]*n for i in range(n): v=TS[i] for g in edge[v]: L[g]+=L[v]+1 for i in range(n)[::-1]: v=TS[i] for g in edge_r[v]: R[g]+=R[v]+1 ans=0 mod=10**9+7 for a,b in E: ans+=(L[a]+1)*(R[b]+1) print(ans%mod)