結果
問題 | No.1103 Directed Length Sum |
ユーザー |
![]() |
提出日時 | 2020-07-05 20:26:19 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 748 bytes |
コンパイル時間 | 161 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 472,316 KB |
最終ジャッジ日時 | 2024-09-22 20:40:13 |
合計ジャッジ時間 | 7,563 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | TLE * 1 -- * 21 |
ソースコード
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) ans%=mod print(ans)