一些概念
度数矩阵:a[i][i]=degree[i],其他等于0
入度矩阵:a[i][i]=in_degree[i],其他等于0
出度矩阵:a[i][i]=out_degree[i],其他等于0
邻接矩阵:边集a[i][j]=[(i,j)∈边集]边集a[i][j]=[(i,j)∈边集]
基尔霍夫矩阵:度数矩阵-邻接矩阵
外向树:长成树的样子但是边有方向,方向为根-->叶子
内向树:长成树的样子但是边有方向,方向为叶子-->根
前置技能
三角矩阵:只有主对角线及其上方的位置有值,主对角线以下的部分都是0
行列式的求值:先用高斯消元把这个行列式消成一个上三角矩阵的形式然后直接把对角线上的数乘起来得到这个行列式的值
余子式:一个行列式的余子式就是这个行列式去掉任意一行一列后剩下的那个少了一维的行列式
无向图的生成树计数
无向图的话生成树个数就是这个图的基尔霍夫矩阵的任意一个余子式的行列式值
有向图的生成树计数
有向图的话分成两种情况:
1、求外向树:那么将无向图中的度数矩阵改成入度矩阵
2、求内向树:将无向图种的度数矩阵改成出度矩阵
不过需要特别注意的一点是:有向图的话余子式去掉的行、列必须是根节点对应的那个