洛谷3317 SDOI2014重建(高斯消元+期望)
qwq
一开始想了个错的做法。
哎
直接开始说比较正确的做法吧。
首先我们考虑题目的\(ans\)该怎么去求
我们令\(x\)表示原图中的某一条边
\]
qwq而根据矩阵树定理,我们可以求出来所有生成树的边权乘积的和,也就是前一部分。
现在我们考虑应该怎么优化第二部分。
qwq
我们经过推理能发现,我们可以用总的除去在生成树里面的求出来不在生成树里面的。
也就是说
\]
我们带回原柿,然后把\(\prod (1-p_i)\)提出来
\]
那么现在,对于后面那一项,我们只需要把所有的边都设成权值是\(\prod_{x \in tree} \frac{p_x}{1-p_x}\)
然后每个\(d[i]\)表示与他连接的所有边权的和。
直接跑矩阵树定理就能求出来\(sum\)啦,然后直接用一开始求的\(\prod p_x\),一减就OK了
但是这里有一个需要注意的地方就是当\(p_x\)等于\(1\)的时候,我们应该将他的权值设成\(1-eps\)
因为当\(p\)等于1的时候,\(\frac{1}{1-p} -> inf\)
然后有因为\(\frac{1}{eps}->inf\)
所以\(p=1-eps\)
然后弄完权值直接跑矩阵树定理就好
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include<set>
#define mk make_pair
#define ll long long
#include<ctime>
using namespace std;
inline int read()
{
int x=0,f=1;char ch=getchar();
while (!isdigit(ch)) {if (ch=='-') f=-1;ch=getchar();}
while (isdigit(ch)) {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
return x*f;
}
const int maxn = 110;
const double eps = 1e-6;
double a[maxn][maxn];
double d[maxn];
int n;
double ans=1;
void gauss()
{
int k=1;
for (int i=1;i<=n;i++)
{
int now = k;
while(now<=n && fabs(a[now][i])<=eps) now++;
if (now==n+1) continue;
for (int j=1;j<=n+1;j++) swap(a[now][j],a[k][j]);
for (int j=1;j<=n;j++)
{
if (j!=k)
{
double t = a[j][i]/a[k][i];
for (int p=1;p<=n+1;p++) a[j][p]-=t*a[k][p];
}
}
++k;
}
for (int i=1;i<=n;i++)
ans=ans*a[i][i];
}
double ymh=1;
int main()
{
n=read();
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
{
double x;
scanf("%lf",&x);
if (x==1) x = 1-eps;
if (i<j) ymh=ymh*(1-x);
x=x/(1-x);
a[i][j]=-x;
d[i]+=x;
//d[j]+=x;
}
for (int i=1;i<=n;i++) a[i][i]=d[i];
gauss();
printf("%.5lf",ans*ymh);
return 0;
}
洛谷3317 SDOI2014重建(高斯消元+期望)的更多相关文章
- 洛谷P2455 [SDOI2006]线性方程组(高斯消元)
题目描述 已知n元线性一次方程组. 其中:n<=50, 系数是[b][color=red]整数<=100(有负数),bi的值都是整数且<300(有负数)(特别感谢U14968 mmq ...
- 【洛谷P3389】(模板)高斯消元
对于高斯消元法求解线性方程组, 我的理解就类似于我们在做数学题时的加减消元法, 只是把它写成一个通用的程序运算过程 对于一个线性方程组,我们从左往右每次将一列对应的行以下的元通过加减消元消去, 每个元 ...
- HDU2262;Where is the canteen(高斯消元+期望)
传送门 题意 给出一张图,LL从一个点等概率走到上下左右位置,询问LL从宿舍走到餐厅的步数期望 分析 该题是一道高斯消元+期望的题目 难点在于构造矩阵,我们发现以下结论 设某点走到餐厅的期望为Ek 1 ...
- 洛谷P3232 [HNOI2013]游走(高斯消元+期望)
传送门 所以说我讨厌数学……期望不会高斯消元也不会……好不容易抄好了高斯消元板子被精度卡成琪露诺了…… 首先,我们先算出走每一条边的期望次数,那么为了最小化期望,就让大的期望次数乘上小编号 边的期望次 ...
- Codeforces 446D - DZY Loves Games(高斯消元+期望 DP+矩阵快速幂)
Codeforces 题目传送门 & 洛谷题目传送门 神仙题,%%% 首先考虑所有格子都是陷阱格的情况,那显然就是一个矩阵快速幂,具体来说,设 \(f_{i,j}\) 表示走了 \(i\) 步 ...
- BZOJ 3143 HNOI2013 游走 高斯消元 期望
这道题是我第一次使用高斯消元解决期望类的问题,首发A了,感觉爽爽的.... 不过笔者在做完后发现了一些问题,在原文的后面进行了说明. 中文题目,就不翻大意了,直接给原题: 一个无向连通图,顶点从1编号 ...
- BZOJ_3270_博物馆_(高斯消元+期望动态规划+矩阵)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=3270 \(n\)个房间,刚开始两个人分别在\(a,b\),每分钟在第\(i\)个房间有\(p[ ...
- BZOJ 2337 XOR和路径 | 高斯消元 期望 位运算
BZOJ 2337 XOR和路径 题解 这道题和游走那道题很像,但又不是完全相同. 因为异或,所以我们考虑拆位,分别考虑每一位: 设x[u]是从点u出发.到达点n时这一位异或和是1的概率. 对于所有这 ...
- BZOJ 2707: [SDOI2012]走迷宫 拓扑+高斯消元+期望概率dp+Tarjan
先Tarjan缩点 强连通分量里用高斯消元外面直接转移 注意删掉终点出边和拓扑 #include<cstdio> #include<cstring> #include<a ...
随机推荐
- new一个对象的时候,实际做了些什么
当我们说new一个对象的时候,实际做了些什么, 可以参考下图理解
- k8s 探针 exec多个判断条件条件 多个检测条件
背景 1,之前我们的yaml文件里面有就绪探针. 2,探针是检测一个文件是否生成,生成了说明服务正常. 3,现在要加一个检测,也是一个文件是否存在并且不为空. 4,只有两个条件同时满足了 服务才算正常 ...
- MyBatis学习总结(一)——MyBatis入门学习
一.MyBatis 简介 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可 ...
- Redis的读写分离
1.概述 随着企业业务的不断扩大,请求的并发量不断增长,Redis可能终会出现无法负载的情况,此时我们就需要想办法去提升Redis的负载能力. 读写分离(主从复制)是一个比较简单的扩展方案,使用多台机 ...
- OSS对象存储的文件上传、解冻、下载与查看
上传文件 cp命令用于上传.下载.拷贝文件. # 语法 ./ossutil cp [-r] file_url cloud_url # 例如 ossutil64 cp -r /remote/closed ...
- LayoutControl控件使用
因默认外边距过大需要将外边距缩小用以下代码实现layoutControlGroup1.Padding = DevExpress.XtraLayout.Utils.Padding.Empty;是否允许只 ...
- SpringSecurity-Shiro-初见
目录 简介 实战环境搭建 SpringSecurity 认证和授权 权限控制和注销 记住我 Shiro 快速上手 shiro整合mybais 简介 在 Web 开发中,安全一直是非常重要的一个方面. ...
- .NET5修改配置不重启自动生效
.NET Core,.NET5默认配置都是只加载一次,修改配置时都需要重启才能生效,如何能修改即时生效呢,下面来演示一遍. 一.设置配置文件实时生效 1.1配置 在Program.cs的CreateH ...
- python安装easyinstall/pip出错
在Windows中装了python3.6,自然还要装pip.按度娘的提供的方法先下载easyinstall,然后在CMD下输入: python ez_setup.py 结果报错 ........... ...
- cnblogs-theme-silence 主题设置简约风格
本文参考 更改博客皮肤 更改博客皮肤为Custom 页面定制CSS代码 勾选禁用模板默认CSS 导入复制该文件内容到代码框中 配置代码块复制功能 样式 和 右侧滑动条样式 /*复制功能添加按钮 beg ...