#!/usr/bin/env python3.9
from fractions import Fraction
from math import lcm
class Platform:
pass
n = int(input())
Nx = [[int(x)-1 for x in input().split()[1:]] for _ in range(n)]
Px = [[] for _ in range(n)]
for i, nx in enumerate(Nx):
for x in nx:
Px[x].append(i)
# print(Px)
A = [Fraction(1,1)]
X = [Fraction(len(Nx[0]), 1)] if Nx[0] else []
for i in range(1, n):
A.append(sum([A[p]/len(Nx[p]) for p in Px[i]]) if Px[i] else Fraction(0,1))
if A[-1] and Nx[i]:
X.append(len(Nx[i]) / A[-1])
# print(A)
# print(X)
R = lcm(*[x.numerator for x in X])
print(R)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #!/usr/bin/env python3.9 from fractions import Fraction from math import lcm class Platform: pass n = int(input()) Nx = [[int(x)-1 for x in input().split()[1:]] for _ in range(n)] Px = [[] for _ in range(n)] for i, nx in enumerate(Nx): for x in nx: Px[x].append(i) # print(Px) A = [Fraction(1,1)] X = [Fraction(len(Nx[0]), 1)] if Nx[0] else [] for i in range(1, n): A.append(sum([A[p]/len(Nx[p]) for p in Px[i]]) if Px[i] else Fraction(0,1)) if A[-1] and Nx[i]: X.append(len(Nx[i]) / A[-1]) # print(A) # print(X) R = lcm(*[x.numerator for x in X]) print(R) |
English