将两个人各自所在点视为状态,新建一个图。到达某个终点的概率等于其期望次数。那么高斯消元即可。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 410
int n,m,s,t,d[][],degree[];
double a[N][N],p[];
int trans(int x,int y){return (x-)*n+y;}
void gauss()
{
for (int i=;i<n*n;i++)
{
int mx=i;
for (int j=i+;j<=n*n;j++)
if (fabs(a[j][i])>fabs(a[mx][i])) mx=j;
if (mx!=i) swap(a[i],a[mx]);
for (int j=i+;j<=n*n;j++)
{
double t=a[j][i]/a[i][i];
for (int k=i;k<=n*n+;k++)
a[j][k]-=t*a[i][k];
}
}
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("bzoj3270.in","r",stdin);
freopen("bzoj3270.out","w",stdout);
const char LL[]="%I64d\n";
#else
const char LL[]="%lld\n";
#endif
n=read(),m=read(),s=read(),t=read();
for (int i=;i<=m;i++)
{
int x=read(),y=read();
degree[x]++,degree[y]++;
d[x][y]=d[y][x]=;
}
for (int i=;i<=n;i++) d[i][i]=;
for (int i=;i<=n;i++) cin>>p[i];
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
for (int x=;x<=n;x++)
for (int y=;y<=n;y++)
if (x!=y&&d[x][i]&&d[y][j])
{
if (x==i) a[trans(i,j)][trans(x,y)]=p[x];
else if (d[x][i]) a[trans(i,j)][trans(x,y)]=(-p[x])/degree[x];
if (y==j) a[trans(i,j)][trans(x,y)]*=p[y];
else if (d[y][j]) a[trans(i,j)][trans(x,y)]*=(-p[y])/degree[y];
}
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
a[trans(i,j)][trans(i,j)]--;
a[trans(s,t)][n*n+]=-;
gauss();
for (int i=n*n;i>=;i--)
{
a[i][n*n+]/=a[i][i];
for (int j=i-;j;j--)
a[j][n*n+]-=a[i][n*n+]*a[j][i];
}
for (int i=;i<=n;i++) printf("%.6lf ",a[trans(i,i)][n*n+]);
return ;
}

BZOJ3270 博物馆(高斯消元+概率期望)的更多相关文章

  1. 【BZOJ-3270】博物馆 高斯消元 + 概率期望

    3270: 博物馆 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 292  Solved: 158[Submit][Status][Discuss] ...

  2. 【BZOJ3143】【HNOI2013】游走 && 【BZOJ3270】博物馆 【高斯消元+概率期望】

    刚学完 高斯消元,我们来做几道题吧! T1:[BZOJ3143][HNOI2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小 ...

  3. 【BZOJ-3143】游走 高斯消元 + 概率期望

    3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2264  Solved: 987[Submit][Status] ...

  4. BZOJ3270:博物馆(高斯消元)

    Description 有一天Petya和他的朋友Vasya在进行他们众多旅行中的一次旅行,他们决定去参观一座城堡博物馆.这座博物馆有着特别的样式.它包含由m条走廊连接的n间房间,并且满足可以从任何一 ...

  5. [JLOI2012]时间流逝 树上高斯消元 概率期望

    题面 题意:(感觉题面写的题意是错的?)有\(n\)种能量不同的圈,设当前拥有的圈的集合为\(S\),则: 1,每天有\(p\)概率失去一个能量最小的圈.特别的,如果\(S = \varnothing ...

  6. 洛谷P4457/loj#2513 [BJOI2018]治疗之雨(高斯消元+概率期望)

    题面 传送门(loj) 传送门(洛谷) 题解 模拟赛的时候只想出了高斯消元然后死活不知道怎么继续--结果正解居然就是高斯消元卡常? 首先有个比较难受的地方是它一个回合可能不止扣一滴血--我们得算出\( ...

  7. 高斯消元与期望DP

    高斯消元可以解决一系列DP序混乱的无向图上(期望)DP DP序 DP序是一道DP的所有状态的一个排列,使状态x所需的所有前置状态都位于状态x前: (通俗的说,在一个状态转移方程中‘=’左侧的状态应该在 ...

  8. HDU4870_Rating_双号从零单排_高斯消元求期望

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4870 原题: Rating Time Limit: 10000/5000 MS (Java/Other ...

  9. hdu 4870 rating(高斯消元求期望)

    Rating Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

随机推荐

  1. monkey测试入门1

    Monkey是一款通过命令行来对我们APP进行测试的工具,可以运行在模拟器里或真机上.它向系统发送伪随机的用户事件流,实现对正应用程序进行压力测试. 官方介绍 :https://developer.a ...

  2. gradle springboot 项目运行的三种方式

    一.java -jar 二.eclipse中 Java Application 三.命令行 gradle bootRun

  3. 使用Chrome控制台进行3D模型编辑的尝试

    前言:3D模型编辑的核心是对顶点位置和纹理颜色的编辑,这个研究的目的在于寻找一种通过编程方式直接对模型进行编辑的方法,这种编辑方法和时下流行的通过鼠标点选.拖拽进行编辑的方法之间的关系,和前端编程中“ ...

  4. [codeForce-1006C]-Three Parts of the Array (简单题)

    You are given an array d1,d2,…,dnd1,d2,…,dn consisting of nn integer numbers. Your task is to split ...

  5. 在python脚本中设置环境变量,并运行相关应用

    1. 问题 在自动化应用的时候 ,有时候环境变量与运行需要不一致.这时候有两种选择: 改变节点环境变量,使得其和运行需求保持一致: 在自动化脚本中设置环境变量,其范围只在脚本运行环境中有效. 显然,当 ...

  6. shell解析ini格式文件

    功能 本脚本实现了ini文件中的查询修改指定value 百度云连接地址 链接:https://pan.baidu.com/s/12_T5yST7Y3L1H4_MkVEcvA 密码:fo5p 解压后先看 ...

  7. python-两个筛子数据可视化(直方图)

    """ 作者:zxj 功能:模拟掷骰子,两个筛子数据可视化 版本:3.0 日期:19/3/24 """ import random impo ...

  8. SQL面经汇总

    转载链接:https://www.nowcoder.com/discuss/95812 目前的打算是还要写一个假设检验的汇总和机器学习的汇总. 之前写的概率论汇总: https://www.nowco ...

  9. [shell] 脚本之shift和getopts (转载)

    转载地址:http://www.361way.com/shell-shift-getopts/4973.html 建议不熟悉getopts的朋友,此篇要看完,getopts部分内容在原作者上面有改动. ...

  10. centos下部署禅道流程

    原文摘录:https://www.jianshu.com/p/71e9dab130a5 下面将我在Linux系统下搭建禅道服务的过程分享给大家. 第一步:下载禅道 Linux中可以用以下命令来下载安装 ...