传送门

矩阵树原来还有一个变元矩阵树定理的么?

简单来说就是要求\(G\)的所有生成树的权值积的和,可以把基尔霍夫矩阵\(K\)改一改,\(K_{i,i}\)表示与\(i\)连的所有边的权值和,\(K_{i,j}\)为\((i,j)\)边权的相反数。那么只要求出它的一个主子式的绝对值就是答案了

考虑本题,就是要我们求\[ans=\sum_T\prod_{e\in T}p_e\prod_{e\notin T}(1-p_e)\]

考虑一下那个变元矩阵树定理,可以求出\[\sum_T\prod_{e\in T}w_e\]

因为\[\prod_{e\notin T}(1-p_e)=\frac{\prod_e(1-p_e)}{\prod_{e\in T}(1-p_e)}\]

然后代入上式,可得\[ans=\prod_e(1-p_e)\sum_T\prod_{e\in T}\frac{p_e}{1-p_e}\]

那么我们把\(\frac{p_e}{1-p_e}\)设为这一条边的权值,用变元矩阵树带进去搞一搞,再乘上前面那一串东西就好了

然而如果\(p_e=1\)该咋办

因为\(\frac{p_e}{0}=\infty\),又有\(\frac{p_e}{eps}=\infty\),那就让\(p_e\)近似等于\(1-eps\)即可(反正误差很小了)

//minamoto
#include<bits/stdc++.h>
#define rint register int
using namespace std;
const int N=55;const double eps=1e-8;
int n;double pro=1,G[N][N];
inline int cmp(double x){return fabs(x)<eps?0:(x<0?-1:1);}
double det(int n){int mx;double t,res=1;for(rint i=1;i<=n;++i){mx=i;for(rint j=i+1;j<=n;++j)if(cmp(G[mx][i]-G[j][i])<0)mx=i;if(mx!=i)for(rint j=i;j<=n;++j)swap(G[i][j],G[mx][j]);if(!G[i][i])return 0;for(rint j=i+1;j<=n;++j){t=G[j][i]/G[i][i];for(rint k=i;k<=n;++k)G[j][k]-=G[i][k]*t;}res*=G[i][i];}return fabs(res);
}
int main(){
//  freopen("testdata.in","r",stdin);scanf("%d",&n);for(rint i=1;i<=n;++i)for(rint j=1;j<=n;++j){scanf("%lf",&G[i][j]);if(i==j)continue;if(G[i][j]>1-eps)G[i][j]-=eps;if(i<j)pro*=(1-G[i][j]);G[i][j]/=(1-G[i][j]);}for(rint i=1;i<=n;++i)for(rint j=1;j<=n;++j)if(i!=j)G[i][i]+=G[i][j],G[i][j]=-G[i][j];printf("%.5lf\n",det(n-1)*pro);return 0;
}

转载于:https://www.cnblogs.com/bztMinamoto/p/9980018.html

P3317 [SDOI2014]重建相关推荐

  1. [bzoj 3534][Sdoi2014] 重建

    传送门 Description T国有N个城市,用若干双向道路连接.一对城市之间至多存在一条道路. 在一次洪水之后,一些道路受损无法通行.虽然已经有人开始调查道路的损毁情况,但直到现在几乎没有消息传回 ...

  2. BZOJ3534:[SDOI2014]重建(矩阵树定理)

    Description T国有N个城市,用若干双向道路连接.一对城市之间至多存在一条道路. 在一次洪水之后,一些道路受损无法通行.虽然已经有人开始调查道路的损毁情况,但直到现在几乎没有消息传回. 幸运 ...

  3. 洛谷3317 SDOI2014重建(高斯消元+期望)

    qwq 一开始想了个错的做法. 哎 直接开始说比较正确的做法吧. 首先我们考虑题目的\(ans\)该怎么去求 我们令\(x\)表示原图中的某一条边 \[ans = \sum \prod_{x\in t ...

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

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

  5. 最小生成树、矩阵树定理、Prufer序列总结

    Kruskal算法 按边权排序,从小到大合并不在同一集合两点即可 Prim算法 每次加入一个到当前已选点集最近的点 P2619 [国家集训队]Tree I 考虑二分,每次给白边加上一个mid,通过这种 ...

  6. 2019年暑假慈溪集训(更新ing)

    前言 换了一个地方被吊打... \(Aug\ 5th\) 今天早上\(10\)点左右出发了,中午在服务区吃饭,下午\(4\)点左右才到. 这次和\(XZY\)徐教练.\(LTL\)蓝指导.\(hl66 ...

  7. Matrix-tree 定理的一些整理

    \(Matrix-tree\) 定理用来解决一类生成树计数问题,以下前置知识内容均是先基于无向无权图来介绍的.有关代数余子式的部分不是很明白,如果有错误还请指出-- 部分内容参考至:\(Blog\_1 ...

  8. 2020.6月做题记录

    长期计划 SAM专题 date:2020.05.21-2020.06.01 基础类: Problem Finished P3804 [模板]后缀自动机 (SAM) √√√ SP1811 LCS - L ...

  9. 矩阵树定理(Kirchhoff || Laplace)初探——Part 1(无向图计数)

    必备知识: 高斯消元,图论基本知识(好像就这...(雾)) 这里是无向图部分,请不要走错场... 定义 我们将邻接矩阵定义为矩阵\(A(u,v)\),我想邻接矩阵就不用再多说了: 我们将每个点的度数矩 ...

  10. python实现二叉树的重建2 之由中序遍历和后序遍历重建

    前言 通过上一节对python实现二叉树的重建1 之由前序遍历和中序遍历重建,我相信我们再来做这个问题就不难了,完全可以照猫画虎的来实现,具体的原理几乎是一样的,直接上代码了 code # 通用解法d ...

最新文章

  1. iOS 关于pods-frameworks.sh:permission denied报错的解决
  2. Android使用Apache HttpClient发送GET、POST请求
  3. VS2017配置opencv教程(图文详解)
  4. 2019贵州大学计算机研究生,贵州大学2019年硕士研究生招生拟录取名单公示(一)...
  5. (软件工程复习核心重点)第十章面向对象设计-第五节:设计数据管理子系统和设计类中的服务
  6. 华为鸿蒙系统发展时间2021年,耗时八年打造国产系统,华为鸿蒙OS质疑声不断,它才是真正未来...
  7. java静态接口方法使用_使用静态方法对接口进行Java编程
  8. SimpleFs文件系统初步二(测试用的块设备构建)
  9. 创业经验谈(转自:ouravr.com)
  10. 合成分红游戏源码_趣合成app开发(现成源码演示案例)
  11. 基于Vue的单页面格式化数据高亮编辑器组件:兼容json/xml/html/txt多种格式
  12. CSS---通向臃肿的道路(关于 “separation of concerns” (SoC)的原则)
  13. Mac Mounty正常卸载方法(mount failed异常解决)
  14. Firefox OS简单介绍
  15. 【葡萄城报表】还在为画“类Word文档报表”而发愁吗?
  16. 玩家交互体验—剑网3师徒系统
  17. 云闪付华为P9指纹_截胡小米支付妥妥的!华为支付正式上线,支持25家银行
  18. FMDB-FMDatabaseQueue
  19. 使用Angular和API服务器显示相关表中的数据
  20. bzoj1001/BJOI2006 狼抓兔子

热门文章

  1. torch运行错误libcudnn Unsupported HDF5 version: 1.10.2错误
  2. 最新基于高德地图的android进阶开发(1)获取 Map API Key
  3. java添加录音,大家说说java程序里怎么插入视频和音频啊
  4. idea引不进jdk的包_idea install 时提示jdk的某个jar包的包不存在的问题
  5. Raki的读paper小记:A Concise Model for Multi-Criteria Chinese Word Segmentation with Transformer Encoder
  6. 第三届蓝桥杯省赛---马虎的算式
  7. u盘启动盘安装centos7.5操作系统
  8. [JSOI2008]最大数maxnumber(线段树)
  9. 基于三台主机部署phpwind
  10. extern 关键字详解