题目链接:点击查看
题目大意:给出一张由 n 个点和 m 条边组成的无向图,对于任意一个生成树,其权值为 n - 1 条边的边权进行二进制的 and 运算,现在需要在图中任意选择一个生成树,问期望权值是多少
题目分析:需要对题意进行转换,根据期望的公式 E( aX + bY ) = aE( X ) + bE( Y ) ,又因为 and 运算对于每一位都是相互独立的,所以拆位然后单独讨论
首先求出来 sum 为原图中有多少个生成树,对于二进制的每一位 i 来说,令所有第 i 位为 1 的边建图,对于这张新图的每一个生成树,对答案的贡献就是 ,累加起来就好了
关于无向图中生成树的计数问题,可以借助矩阵树定理求解
代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include