[SDOI2014] 重建 - 矩阵树定理,概率期望

#include <bits/stdc++.h>
#define eps 1e-6
using namespace std;
const int N = 55;
namespace mat {
double a[N][N];
int n,p=1;
double gauss_jordan() {
double ans = 1;
for(int i=1;i<=n;i++) {
int r=i;
for(int j=i+1;j<=n;j++) if(fabs(a[j][i])>fabs(a[r][i])) r=j;
if(r-i) {for(int j=1;j<=n+1;j++) swap(a[i][j],a[r][j]); ans*=-1;}
//if(fabs(a[i][i])<eps) {p=0; return;}
for(int j=1;j<=n;j++) if(j-i) {
double tmp=a[j][i]/a[i][i];
for(int k=i+1;k<=n+1;k++) a[j][k]-=a[i][k]*tmp;
}
ans*=a[i][i];
}
return ans;
}
} // namespace mat
double n,p[N][N];
int main() {
cin>>n;
for(int i=1;i<=n;i++) {
for(int j=1;j<=n;j++) {
cin>>p[i][j];
if(abs(1-p[i][j])<eps) p[i][j]-=eps;
}
}
double ans=1;
for(int i=1;i<=n;i++) {
for(int j=i+1;j<=n;j++) {
ans*=1-p[i][j];
}
}
for(int i=1;i<=n;i++) {
for(int j=1;j<=n;j++) if(i!=j) {
mat::a[i][j]=-p[i][j]/(1-p[i][j]);
mat::a[i][i]+=p[i][j]/(1-p[i][j]);
}
}
mat::n=n-1;
ans*=mat::gauss_jordan();
printf("%.8lf\n",ans);
}
[SDOI2014] 重建 - 矩阵树定理,概率期望的更多相关文章
- BZOJ3534:[SDOI2014]重建(矩阵树定理)
Description T国有N个城市,用若干双向道路连接.一对城市之间至多存在一条道路. 在一次洪水之后,一些道路受损无法通行.虽然已经有人开始调查道路的损毁情况,但直到现在几乎没有消息传回. 幸运 ...
- luoguP3317 [SDOI2014]重建 变元矩阵树定理 + 概率
首先,我们需要求的是 $$\sum\limits_{Tree} \prod\limits_{E \in Tree} E(u, v) \prod\limits_{E \notin Tree} (1 - ...
- BZOJ3534 [Sdoi2014]重建 【矩阵树定理】
题目 T国有N个城市,用若干双向道路连接.一对城市之间至多存在一条道路. 在一次洪水之后,一些道路受损无法通行.虽然已经有人开始调查道路的损毁情况,但直到现在几乎没有消息传回. 辛运的是,此前T国政府 ...
- 【BZOJ3534】[SDOI2014] 重建(矩阵树定理)
点此看题面 大致题意: 给你一张图,每条边有一定存在概率.求存在的图刚好为一棵树的概率. 矩阵树定理是什么 如果您不会矩阵树定理,可以看看蒟蒻的这篇博客:初学矩阵树定理. 矩阵树定理的应用 此题中,直 ...
- [luoguP3317] [SDOI2014]重建(矩阵树定理)
传送门 为了搞这个题又是学行列式,又是学基尔霍夫矩阵. 矩阵树定理 本题题解 无耻地直接发链接,反正我也是抄的题解.. #include <cstdio> #include <cma ...
- 【BZOJ3534】重建(矩阵树定理)
[BZOJ3534]重建(矩阵树定理) 题面 BZOJ 洛谷 题解 这.... 矩阵树定理神仙用法???? #include<iostream> #include<cmath> ...
- 【Luogu】P3317重建(高斯消元+矩阵树定理)
题目链接 因为这个专门跑去学了矩阵树定理和高斯消元qwq 不过不是很懂.所以这里只放题解 玫葵之蝶的题解 某未知dalao的矩阵树定理 代码 #include<cstdio> #inclu ...
- 【算法】Matrix - Tree 矩阵树定理 & 题目总结
最近集中学习了一下矩阵树定理,自己其实还是没有太明白原理(证明)类的东西,但想在这里总结一下应用中的一些细节,矩阵树定理的一些引申等等. 首先,矩阵树定理用于求解一个图上的生成树个数.实现方式是:\( ...
- @总结 - 7@ 生成树计数 —— matrix - tree 定理(矩阵树定理)与 prüfer 序列
目录 @0 - 参考资料@ @0.5 - 你所需要了解的线性代数知识@ @1 - 矩阵树定理主体@ @证明 part - 1@ @证明 part - 2@ @证明 part - 3@ @证明 part ...
随机推荐
- kali linux 渗透入门之基础准备-Burp Suite 代理设置
一:安装火狐浏览器-插件与设置中文 打开浏览器,复制粘贴这条url: https://addons.mozilla.org/en-US/firefox/addon/chinese-simplified ...
- CSS3中新增的对文本和字体的设置
文字阴影 text-shadow: 水平偏移 垂直偏移 模糊 颜色 兼容性:IE10+ <!DOCTYPE html> <html lang="en" mani ...
- Android8.0自定义广播接收不到问题
https://blog.csdn.net/kongqwesd12/article/details/78998151
- 使用SSM 或者 springboot +mybatis时,对数据库的认证信息(用户名,密码)进行加密。
通常情况下,为了提高安全性,我们需要对数据库的认证信息进行加密操作,然后在启动项目的时候,会自动解密来核对信息是否正确.下面介绍在SSM和springboot项目中分别是怎样实现的. 无论是使用SSM ...
- ubuntu set up 6 - NTFS Mount
1. NTFS Mounted as read-only https://askubuntu.com/questions/1138076/ubuntu-18-04-cant-write-on-ntfs ...
- Win10如何设置休眠选项(关于睡眠、休眠、快速启动这几个伪关机功能如何设置更适合笔记本电脑?)
· Win10如何设置休眠选项(关于睡眠.休眠.快速启动这几个伪关机功能如何设置更适合笔记本电脑?) 应用场景 升级正式版win10以后,发现竟然没有休眠选项,从电源管理器里面也没有找到,有时候有些重 ...
- threadpool 实例介绍第二篇
- 常用命令 在linux下
1.拷贝某个目录及其下的所有的文件到另外一个目录 语法:cp -r <source directory name>/ <destination directory name>/ ...
- linux基础之CentOS启动流程
一.基本概念 内核设计流派: 单内核设计:Linux //所有功能集成于同一个程序 微内核设计:Windows,Solaris //每种功能使用一个单独子系统实现 Linux内核特点: 支持模块化:. ...
- Spark学习之路 (三)Spark之RDD[转]
RDD的概述 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的 ...