jzoj5153

题意

给定(n)(m)条带权有向边的图,求所有的以(n)为根的内向树形图的边权和之和。(nle 300,mle 10^5)

做法

矩阵树,考虑一个暴力(O(mn^3))
先算出所有的树形图个数,单独考虑某一条边,去掉后的树形图个数,补集就是用到其的个数

考虑优化,其实就是修改某一行,快速求行列式:
考虑若将第(k)行修改成(c_1,c_2,...,c_{n-1},c_n),其中(c_j=sumlimits_{i=1}^n A_{i,j}x_i),那么此时矩阵的行列式为(det(A) imes x_k)
显然,(x_k)可以表示为这样的形式(sumlimits_{i=1}^n a_ic_i)
可以先根据(c_j=sumlimits_{i=1}^n A_{i,j}x_i),把系数({a})解出来,然后就可以直接查询了

(O(n^3+nm))

原文地址:https://www.cnblogs.com/Grice/p/12876068.html