BZOJ 3270: 博物馆 概率与期望+高斯消元
和游走挺像的,都是将概率转成期望出现的次数,然后拿高斯消元来解.
#include <bits/stdc++.h>
#define N 23
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
double in[N],out[N],f[N*N][N*N];
int G[N][N],deg[N],idx[N][N],tot;
void Gauss(int n)
{
int i,j,k,now;
for(i=1;i<=n;++i)
{
now=i;
for(j=i;j<=n;++j)
{
if(fabs(f[j][i])>fabs(f[now][i])) now=j;
}
if(now!=i)
{
for(j=1;j<=n;++j) swap(f[i][j],f[now][j]);
}
if(f[i][i])
{
for(j=i+1;j<=n+1;++j) f[i][j]/=f[i][i];
f[i][i]=1;
}
for(j=i+1;j<=n;++j)
{
double div=f[j][i];
for(k=i+1;k<=n+1;++k) f[j][k]-=div*f[i][k];
f[j][i]=0;
}
}
for(i=n;i>=1;--i)
{
for(j=i+1;j<=n;++j)
{
f[i][n+1]-=f[j][n+1]*f[i][j];
}
}
}
int main()
{
// setIO("input");
int n,i,j,m,A,B;
scanf("%d%d%d%d",&n,&m,&A,&B);
for(i=1;i<=m;++i)
{
int u,v;
scanf("%d%d",&u,&v),G[u][v]=G[v][u]=1,++deg[u],++deg[v];
}
for(i=1;i<=n;++i) scanf("%lf",&in[i]), out[i]=(1-in[i])/(1.0*deg[i]);
for(i=1;i<=n;++i) G[i][i]=1;
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j) idx[i][j]=++tot;
}
f[idx[A][B]][tot+1]=-1;
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
{
int cur=idx[i][j];
f[cur][cur]=-1;
for(int x=1;x<=n;++x)
{
for(int y=1;y<=n;++y)
{
if(x==y||!G[i][x]||!G[j][y]) continue;
int id=idx[x][y];
if(i==x&&j==y)
{
f[cur][id]+=in[i]*in[j];
}
else if(i==x&&j!=y)
{
f[cur][id]+=in[x]*out[y];
}
else if(i!=x&&j==y)
{
f[cur][id]+=out[x]*in[y];
}
else
{
f[cur][id]+=out[x]*out[y];
}
}
}
}
}
Gauss(tot);
for(i=1;i<=n;++i)
{
printf("%.6f ",f[idx[i][i]][tot+1]);
}
return 0;
}
BZOJ 3270: 博物馆 概率与期望+高斯消元的更多相关文章
- BZOJ 3143: [Hnoi2013]游走 概率与期望+高斯消元
Description 一个无向连通图,顶点从1编号到N,边从1编号到M.小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获 ...
- BZOJ 3143 游走(贪心+期望+高斯消元)
一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分 ...
- l洛谷 P6030 [SDOI2012]走迷宫 概率与期望+高斯消元
题目描述 传送门 分析 首先判掉 \(INF\) 的情况 第一种情况就是不能从 \(s\) 走到 \(t\) 第二种情况就是从 \(s\) 出发走到了出度为 \(0\) 的点,这样就再也走不到 \(t ...
- BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 概率与期望+高斯消元
这个还挺友好的,自己相对轻松能想出来~令 $f[i]$ 表示起点到点 $i$ 的期望次数,则 $ans[i]=f[i]\times \frac{p}{q}$ #include <cmath> ...
- BZOJ 3143 游走 | 数学期望 高斯消元
啊 我永远喜欢期望题 BZOJ 3143 游走 题意 有一个n个点m条边的无向联通图,每条边按1~m编号,从1号点出发,每次随机选择与当前点相连的一条边,走到这条边的另一个端点,一旦走到n号节点就停下 ...
- 【BZOJ】3143: [Hnoi2013]游走 期望+高斯消元
[题意]给定n个点m条边的无向连通图,每条路径的代价是其编号大小,每个点等概率往周围走,要求给所有边编号,使得从1到n的期望总分最小(求该总分).n<=500. [算法]期望+高斯消元 [题解] ...
- 【BZOJ】2337: [HNOI2011]XOR和路径 期望+高斯消元
[题意]给定n个点m条边的带边权无向连通图(有重边和自环),在每个点随机向周围走一步,求1到n的期望路径异或值.n<=100,wi<=10^9. [算法]期望+高斯消元 [题解]首先异或不 ...
- [BZOJ3143][HNOI2013]游走(期望+高斯消元)
3143: [Hnoi2013]游走 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3576 Solved: 1608[Submit][Status ...
- BZOJ 3270: 博物馆 [概率DP 高斯消元]
http://www.lydsy.com/JudgeOnline/problem.php?id=3270 题意:一张无向图,一开始两人分别在$x$和$y$,每一分钟在点$i$不走的概率为$p[i]$, ...
随机推荐
- 简易计算器-leetcode
今天,开始在leetcode上面开始做题,第一个题目是: Implement a basic calculator to evaluate a simple expression string. Th ...
- 牛客 158D a-贝利福斯数
将所有形如ax+1的数称为a-贝利福斯数,其中x是正整数.一个a-贝利福斯数是a-贝利福斯素数,当且仅当它不能被分解成两个a-贝利福斯数的积.现在给出a,n,问有多少个 ≤ n的a-贝利福斯数可以被分 ...
- Power BI 报表服务器中的行级别安全性 (RLS)
在 Power BI Desktop 中定义角色和规则 你可以在 Power BI Desktop 中定义角色和规则. 发布到 Power BI 时,它还会发布角色定义. 若要定义安全角色,请执行以下 ...
- Bootstrap3基础教程 02 网格布局
Bootstrap 提供了一套响应式.移动设备优先的流式网格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多列. 网页设计中的网格布局作用:组织内容,让网站易于浏览,并降低用户端 ...
- 解决windows系统下ping,ipconfig不是内部或外部命令
一般情况下,都是误删了系统变量path的值.解决方法:右击我的电脑 → 选择属性 → 选择高级系统设置 → 环境变量 → 在系统变量列表中,找到“path”环境变量双击,打开.在变量值这一栏检测下是否 ...
- 【原创】大叔经验分享(56)hue导出行数限制
/opt/cloudera/parcels/CDH/lib/hue/apps/beeswax/src/beeswax/conf.py # Deprecated DOWNLOAD_CELL_LIMIT ...
- win10上使用php与python实现与arduino串口通信
注意: php 需要php7,安装及开启php_dio.dll com口按照实际的进行设置,如果不知道可以打开arduino编辑器进行查看 可以与用户实现命令行交互,但是效率过慢,不清楚如何优化,使用 ...
- img 图像底部留白的原因以及解决方法
有时候,我们在添加图片img标签后并没有给该标签设置magrin属性的margin-bottom值,在有些浏览器中打开就会出现图像底部留白,为什么为造成这个原因?下面就来进行分析:由于img元素默认为 ...
- js多语言切换demo
网站为了国际化的需要,会使用到语言包,案例如下图. 这次尝试用js来打语言包,用到了插件 jquery.i18n.properties ,很明显,使用这个插件需要先加载jquery. 代码布局结构 ...
- maven 父子工程打包 并且上传linux服务器
先对父工程进行 mvn clean 再对子工程执行 install wagon:upload-single wagon:sshexec 使用wagon前提: 本地maven 的settings.xml ...