【LOJ #6391】「THUPC2018」淘米神的树 / Tommy (多项式多点求值)

传送门

显然把链提出来,两端点子树内每个点的贡献为 1 s i z \frac {1}{siz}
最后乘一个 n ! n!

考虑链上的,如果枚举最后一个点不好算
考虑枚举一条边作为没经过的
且在 a , b a,b 之间连一条边

那么每个点恰好被计算两次
s i z siz 为每个点非链子树 s i z siz
对于 ( i , i + 1 ) (i,i+1) 之间的边
贡献就是 j i 1 s i z i s i z j \prod_{j\not=i}\frac{1}{|siz_i-siz_j|}
考虑把绝对值拆开显然没多大区别
设链长为 m m ,那么乘上 ( 1 ) m i (-1)^{m-i}
那么就是计算一个 i j i 1 ( s i z j s i z i ) \sum_i\prod_{j\not=i}\frac{1}{(siz_j-siz_i)}

考虑写作 f i ( x ) = x s i z i j x s i z j f_i(x)=\frac{x-siz_i}{\prod_{j}x-siz_j}
那么就是所有 i f i ( s i z i ) \sum_if_i(siz_i)
这个直接没法做,用洛必达法则求个导就可以了

然后再写个多点求值即可

code

猜你喜欢

转载自blog.csdn.net/qq_42555009/article/details/105870487