結果
問題 | No.2504 NOT Path Painting |
ユーザー |
|
提出日時 | 2023-07-22 17:02:11 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,155 bytes |
コンパイル時間 | 291 ms |
コンパイル使用メモリ | 82,292 KB |
実行使用メモリ | 107,908 KB |
最終ジャッジ日時 | 2024-09-22 16:40:20 |
合計ジャッジ時間 | 17,660 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 RE * 2 |
ソースコード
from typing import Listdef solve(n: int, g: List[List[int]]):m = n * (n + 1) // 2ans = 0def dfs(u: int, p: int) -> int:nonlocal ansp_u = msub_u = 1for v in g[u]:if v == p:continuesub_v = dfs(v, u)p_u -= sub_v * (sub_v + 1) // 2p_uv = sub_v * (n - sub_v)ans -= m * modinv(m - p_uv) % Psub_u += sub_vif p != -1:sub_p = n - sub_up_u -= sub_p * (sub_p + 1) // 2ans += m * modinv(m - p_u) % Preturn sub_udfs(0, -1)return ans % Pif __name__ == '__main__':P = 998244353def modinv(v: int):return pow(v, P - 2, P)answers = []T = int(input())for _ in range(T):n = int(input())g = [[] for _ in range(n)]for _ in range(n - 1):u, v = map(int, input().split())u -= 1v -= 1g[u].append(v)g[v].append(u)answers.append(solve(n, g))print('\n'.join(map(str, answers)))