求大小为
N
N
N树上每个点随机游走到
M
M
M个标记点中任意一个的期望时间,每次等概率地到达与自己距离
≤
2
leq2
≤2的点(包括自己)。
M
,
N
≤
1
0
5
M,Nleq 10^5
M,N≤105.
题解
暴力做法可以根据题意列出
N
N
N条方程,高斯消元解出每个点的期望,时间复杂度
O
(
N
3
)
O(N^3)
O(N3)。
这样做每个点的方程中会有它的祖父、父亲、兄弟层(包括自己)、儿子层、孙子层和常数,即为
E
k
=
a
E
f
a
f
a
k
+
b
E
f
a
k
+
c
∑
E
b
r
o
+
d
∑
E
s
o
n
k
+
e
∑
E
s
o
n
s
o
n
k
+
f
E_k=aE_{fa_{fa_k}}+bE_{fa_k}+csum E_{bro}+dsum E_{son_k}+esum E_{son_{son_k}}+f
Ek=aEfafak+bEfak+c∑Ebro+d∑Esonk+e∑Esonsonk+f的形式,
其中每个点的祖父和父亲是唯一的,而兄弟、儿子、孙子会有若干,复杂度比较高。
起初,
a
=
b
=
c
=
d
=
e
=
1
d
k
a=b=c=d=e=frac{1}{d_k}
a=b=c=d=e=dk1,
f
=
1
f=1
f=1,其中
d
k
d_k
dk为到
k
k
k的距离
≤
2
leq2
≤2的点的个数。
目标是把每个点的方程右边都消剩
a
,
b
,
c
,
f
a,b,c,f
a,b,c,f项,
叶子节点处本身就只有
a
,
b
,
c
,
f
a,b,c,f
a,b,c,f项,无需考虑。假设此时已经完成了所有后代的点,考虑如何把自己的右边也消剩
a
,
b
,
c
,
f
a,b,c,f
a,b,c,f项。
也就是要消去
d
,
e
d,e
d,e,即把
E
s
o
n
E_{son}
Eson和
E
s
o
n
s
o
n
E_{son_{son}}
Esonson的方程代入到自己的方程,
先考虑儿子,因为
c
c
c项比较复杂,可以先把
c
c
c项消去,
把每个儿子的方程相加,刚好得到
∑
E
b
r
o
=
a
′
E
f
a
f
a
k
+
b
′
E
f
a
k
+
c
′
∑
E
b
r
o
+
f
′
sum E_{bro}=a'E_{fa_{fa_k}}+b'E_{fa_k}+c'sum E_{bro}+f'
∑Ebro=a′Efafak+b′Efak+c′∑Ebro+f′,其中
a
′
,
b
′
,
c
′
,
f
′
a',b',c',f'
a′,b′,c′,f′分别为每个儿子
a
,
b
,
c
,
f
a,b,c,f
a,b,c,f的和,于是发现
c
c
c项可以移到左边,用
a
,
b
,
f
a,b,f
a,b,f项表示,则
c
c
c项被消去。
于是儿子只剩
a
,
b
,
f
a,b,f
a,b,f项了,都可以直接代入到自己的方程中,此时儿子解决完了。
接着考虑孙子,类似的,在儿子处已经消剩了
a
,
b
,
f
a,b,f
a,b,f项,那么也可以直接代入到自己的方程中,其中会涉及到儿子的期望,则再把儿子重复代入一遍,乘上对应的权值即可。