結果
問題 | No.1507 Road Blocked |
ユーザー |
![]() |
提出日時 | 2021-05-15 01:52:22 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 282 ms / 2,000 ms |
コード長 | 975 bytes |
コンパイル時間 | 190 ms |
コンパイル使用メモリ | 82,268 KB |
実行使用メモリ | 178,560 KB |
最終ジャッジ日時 | 2024-10-02 08:29:37 |
合計ジャッジ時間 | 9,421 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 |
ソースコード
import sys sys.setrecursionlimit(10**7) def I(): return int(sys.stdin.readline().rstrip()) def MI(): return map(int,sys.stdin.readline().rstrip().split()) def LI(): return list(map(int,sys.stdin.readline().rstrip().split())) def LI2(): return list(map(int,sys.stdin.readline().rstrip())) def S(): return sys.stdin.readline().rstrip() def LS(): return list(sys.stdin.readline().rstrip().split()) def LS2(): return list(sys.stdin.readline().rstrip()) N = I() Graph = [[] for _ in range(N+1)] edges = [] for _ in range(N-1): u,v = MI() Graph[u].append(v) Graph[v].append(u) edges.append((u,v)) mod = 998244353 def dp(i,par): res = 1 for j in Graph[i]: if j == par: continue res += dp(j,i) subtree[i] = res return res subtree = [0]*(N+1) dp(1,0) inv = pow(N*(N-1)**2,mod-2,mod) ans = 1 for u,v in edges: a = subtree[u] b = subtree[v] m = min(a,b) ans -= 2*m*(N-m)*inv ans %= mod print(ans)