jzoj5153
题意
给定\(n\)点\(m\)条带权有向边的图,求所有的以\(n\)为根的内向树形图的边权和之和。\(n\le 300,m\le 10^5\)
做法
矩阵树,考虑一个暴力\(O(mn^3)\)
先算出所有的树形图个数,单独考虑某一条边,去掉后的树形图个数,补集就是用到其的个数
考虑优化,其实就是修改某一行,快速求行列式:
考虑若将第\(k\)行修改成\(c_1,c_2,...,c_{n-1},c_n\),其中\(c_j=\sum\limits_{i=1}^n A_{i,j}x_i\),那么此时矩阵的行列式为\(det(A)\times x_k\)
显然,\(x_k\)可以表示为这样的形式\(\sum\limits_{i=1}^n a_ic_i\)
可以先根据\(c_j=\sum\limits_{i=1}^n A_{i,j}x_i\),把系数\(\{a\}\)解出来,然后就可以直接查询了
\(O(n^3+nm)\)