题目链接:点击查看

题目大意:给出一张由 n 个点和 m 条边组成的无向图,对于任意一个生成树,其权值为 n - 1 条边的边权进行二进制的 and 运算,现在需要在图中任意选择一个生成树,问期望权值是多少

题目分析:需要对题意进行转换,根据期望的公式 E( aX + bY ) = aE( X ) + bE( Y ) ,又因为 and 运算对于每一位都是相互独立的,所以拆位然后单独讨论

首先求出来 sum 为原图中有多少个生成树,对于二进制的每一位 i 来说,令所有第 i 位为 1 的边建图,对于这张新图的每一个生成树,对答案的贡献就是 ,累加起来就好了

关于无向图中生成树的计数问题,可以借助矩阵树定理求解

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<cassert>
#include<bitset>
#include<unordered_map>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=110;const int mod=998244353;struct Edge
{int u,v,w;
}edge[N*N];int n,m;LL a[N][N];LL q_pow(LL a,LL b)
{LL ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod;b>>=1;}return ans;
}LL Gauss(int n)
{LL ans=1;for(int i=2;i<=n;i++){for(int j=i+1;j<=n;j++)if(!a[i][i]&&a[j][i]) {ans=-ans;swap(a[i],a[j]);break;}LL inv=q_pow(a[i][i],mod-2);for(int j=i+1;j<=n;j++){LL temp=a[j][i]*inv%mod;for(int k=i;k<=n;k++)a[j][k]=(a[j][k]-a[i][k]*temp%mod+mod)%mod;}ans=ans*a[i][i]%mod;}return ans;
}LL cal(int bit)
{memset(a,0,sizeof(a));for(int i=1;i<=m;i++){if(bit==-1||(edge[i].w>>bit)&1){int x=edge[i].u,y=edge[i].v;a[x][x]=(a[x][x]+1)%mod;a[y][y]=(a[y][y]+1)%mod;a[x][y]=(a[x][y]-1+mod)%mod;a[y][x]=(a[y][x]-1+mod)%mod;}}return Gauss(n);
}int main()
{
#ifndef ONLINE_JUDGE
//  freopen("data.in.txt","r",stdin);
//  freopen("data.out.txt","w",stdout);
#endif
//  ios::sync_with_stdio(false);int w;cin>>w;while(w--){scanf("%d%d",&n,&m);for(int i=1;i<=m;i++)scanf("%d%d%d",&edge[i].u,&edge[i].v,&edge[i].w);LL sum=q_pow(cal(-1),mod-2);LL ans=0;for(int i=0;i<=30;i++)ans=(ans+cal(i)*sum%mod*(1<<i)%mod)%mod;printf("%lld\n",ans);}return 0;
}

HDU多校6 - 6836 Expectation(矩阵树定理+高斯消元求行列式)相关推荐

  1. CF917D-Stranger Trees【矩阵树定理,高斯消元】

    正题 题目链接:https://www.luogu.com.cn/problem/CF917D 题目大意 给出nnn个点的一棵树,对于每个kkk求有多少个nnn个点的树满足与给出的树恰好有kkk条边重 ...

  2. SP104 Highways (矩阵树,高斯消元)

    矩阵树定理裸题 //#include <iostream> #include <cstdio> #include <cstring> #include <al ...

  3. 矩阵与高斯消元【矩阵乘法,高斯消元求线性方程组,求行列式】 全网最详,附例题与姊妹篇 一万三千字详解

    (详解)矩阵快速幂详解与常见转移矩阵的构造_秦小咩的博客-CSDN博客_矩阵快速幂转移矩阵 目录 矩阵乘法 矩阵快速幂 伪代码模板 例题一 例题2 例题三 例题四 高斯消元 整形高斯消元 浮点型高斯消 ...

  4. 矩阵树 Matrix-Tree 定理实现模板(高斯消元求解行列式)

    大佬1博客:https://www.cnblogs.com/zj75211/p/8039443.html 大佬2博客:https://www.cnblogs.com/yangsongyi/p/1069 ...

  5. BZOJ 2466 [中山市选2009]树(高斯消元)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2466 [题目大意] 给定一棵树,每个节点有一盏指示灯和一个按钮.如果节点的按扭被按了, ...

  6. 【BZOJ3168】[Heoi2013]钙铁锌硒维生素 高斯消元求矩阵的逆+匈牙利算法

    [BZOJ3168][Heoi2013]钙铁锌硒维生素 Description 银河队选手名单出来了!小林,作为特聘的营养师,将负责银河队选手参加宇宙比赛的饮食.众所周知,前往宇宙的某个星球,通常要花 ...

  7. Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理,子集反演)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理) Problem n≤1 ...

  8. 【学习笔记】矩阵树定理(Matrix-Tree)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 一.矩阵树定理 二.常用定理 三.例题 1. Luogu P6178 [模板]Matrix-Tr ...

  9. bzoj 3503: [Cqoi2014]和谐矩阵(高斯消元)

    3503: [Cqoi2014]和谐矩阵 Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special Judge Submit: 1101  Solved ...

最新文章

  1. 刀片服务器与机架服务器对比
  2. 常用的一些注入命令,方便一下大家哦
  3. MySQL-[Err] 1055 - Expression #1
  4. 【小题目】写JAVA程序时可以创建一个名为123.java的源文件吗
  5. 中石油训练赛 - 奎奎发红包(贪心)
  6. Abp v2.8.0发布 路线图
  7. 编写了html怎么测试,如何将测试结果写入HTMLTestRunner生成的报告标题中
  8. ZOJ 3204 Connect them 继续MST
  9. 接口测试学习之json
  10. 解决魅族手机不能Toast提示的方法
  11. android 仿站小工具,仿站小工具下载
  12. 微信公众号基本配置时token获取失败原因及解决方法
  13. 解决 CAP_IMAGES: can‘t find starting number (in the name of file)
  14. 网络服务器未运行是什么原因是,Win7系统网络诊断提示诊断策略服务未运行怎么办?...
  15. XTTS 跨平台表空间迁移测试
  16. Android 平台语音通话及回音消除、噪音消除研究
  17. 计算机网络 自顶向下 笔记
  18. 北大工学院计算机考研,北京大学机械考研经验-北大工学院考研辅导班
  19. 【人脸识别】Haar分类器五官定位【含GUI Matlab源码 686期】
  20. java系统学习_java全面系统学习路线(转载)

热门文章

  1. 查询分析300万笔记录_一分钟狂销100万件商品!Shopee虾皮双12大促再创记录
  2. 单片机c语言 u16,单片机C语言的误用
  3. java bigdecimal min_java
  4. 签约 计算机英语,签约协议时的英文表达
  5. kafka基本管理操作命令
  6. 从SpringBootApplication注解入手
  7. flume案例-文件数据采集-运行测试
  8. 通过非docker的方式进行RocketMQ的安装
  9. DateFormat类的format方法和parse方法
  10. 静态static关键字修饰成员方法