给定\(n\)个点的DAG,对于\(i\in[1,n]\),求对于点\(i\),\(1\)到\(i\)的所有路径的权值和,一条路径的权值为\(len^k\)(路径长度\(len\))。(\(n\le 10^5,m\le 2\times 10^5,k\le 500\))
令\(f_{i,j}\)为\(1\)到\(i\)的路径\(\sum len^j\)
可以用二项式定理转移。\(O(mk^2)\)
\(len^k=\sum S_{k,i}{len\choose i}i!\)
则\(\sum len^k=\sum\sum S_{k,i}{len\choose i}i!=\sum S_{k,i}i!\sum\limits_{len} {len\choose i}\)
用\(f_{i,j}\)维护到\(i\)的\(\sum\limits_{len}{len\choose j}\),根据二项式系数的性质,通过\(f_{u,j}+f_{u,j-1}\longrightarrow f_{v,j}\)更新
原文:https://www.cnblogs.com/Grice/p/12891103.html