Submission #26559753
Source Code Expand
N = gets.to_i
M = 10**9+7
E = Array.new(N){{}}
$<.each{|ln|
a,b = ln.split.map{_1.to_i-1}
E[a][b] = nil
E[b][a] = nil
}
D = E.map(&:size)
C = lambda{|max|
num,dnm = [1,1],[1,1]
2.upto(max){|n|
num << num[-1]*n%M
dnm << M - dnm[M%n]*(M/n)%M # 謎
}
1.upto(dnm.size-1){|n|
dnm[n] = dnm[n-1]*dnm[n]%M # 謎
}
next lambda{|n,r|
num[n]*dnm[r]*dnm[n-r]%M
}
}.call N
P = [nil]*N
Q = N.times.select{ D[_1]<2 }
while a = Q.pop
pr,nd = 1,0
E[a].each{|b,(pr2,nd2)|
if pr2
pr = pr*pr2*C[nd+nd2,nd]%M
nd += nd2
else
P[a] = b
end
}
break unless P[a]
E[P[a]][a] = [pr,nd+1]
Q << P[a] if 1 == D[P[a]] -= 1
end
Q << a
while a = Q.pop
pr,nd = 1,0
E[a].each{|b,(pr2,nd2)|
pr = pr*pr2*C[nd+nd2,nd]%M
nd += nd2
}
E[a].each{|b,(pr2,nd2)|
next if b==P[a]
E[b][a] = [pr*pr2.pow(M-2,M)*C[nd,nd2].pow(M-2,M)%M,nd-nd2+1]
Q << b
}
end
puts E.map{|bs|
bs.values.inject([1,0]){|(pr,nd),(pr2,nd2)|
next pr*pr2*C[nd+nd2,nd]%M,nd+nd2
}[0]
}
Submission Info
| Submission Time |
|
| Task |
F - Distributing Integers |
| User |
ds14050 |
| Language |
Ruby (2.7.1) |
| Score |
600 |
| Code Size |
1028 Byte |
| Status |
AC |
| Exec Time |
1548 ms |
| Memory |
101476 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
600 / 600 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
| All |
line_01.txt, line_02_shuffled.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06_shuffled.txt, random_07_shuffled.txt, random_08_shuffled.txt, random_09_shuffled.txt, random_10.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, star_01.txt, star_02_shuffled.txt |
| Case Name |
Status |
Exec Time |
Memory |
| line_01.txt |
AC |
329 ms |
33864 KiB |
| line_02_shuffled.txt |
AC |
373 ms |
33880 KiB |
| random_01.txt |
AC |
1525 ms |
84104 KiB |
| random_02.txt |
AC |
1532 ms |
83912 KiB |
| random_03.txt |
AC |
1547 ms |
83272 KiB |
| random_04.txt |
AC |
1543 ms |
84048 KiB |
| random_05.txt |
AC |
1511 ms |
83400 KiB |
| random_06_shuffled.txt |
AC |
1542 ms |
84132 KiB |
| random_07_shuffled.txt |
AC |
1548 ms |
84068 KiB |
| random_08_shuffled.txt |
AC |
1526 ms |
84168 KiB |
| random_09_shuffled.txt |
AC |
1538 ms |
84052 KiB |
| random_10.txt |
AC |
1538 ms |
84104 KiB |
| sample_01.txt |
AC |
56 ms |
13968 KiB |
| sample_02.txt |
AC |
56 ms |
14156 KiB |
| sample_03.txt |
AC |
58 ms |
14076 KiB |
| sample_04.txt |
AC |
57 ms |
14128 KiB |
| star_01.txt |
AC |
1068 ms |
101476 KiB |
| star_02_shuffled.txt |
AC |
1380 ms |
101356 KiB |