[Usaco2010Hol]Dotp
题意
一开始在111有个炸弹,在每个点有pq" role="presentation" style="position: relative;">pqpq\frac pq的概率的爆炸,如果不爆炸则等概率地走向相邻的点
求在每个点爆炸的概率
题解
设f[u]f[u]f[u]表示走到uuu的期望次数,du" role="presentation" style="position: relative;">dudud_u表示点度,初始f1=1f1=1f_1=1
因为要不爆炸才能往下走,那么有
f[u]=\sum_{(u,v)\in E}\frac1{d_v}(1-\frac pq)f[v]
在每个点爆炸的概率就是期望走到每个点的次数××\times爆炸的概率
因为状态转移有环,所以按照套路高斯消元就好了
注意这题卡精度,ϵ<10−13ϵ<10−13\epsilon\lt10^{-13}才行
#include<bits/stdc++.h>
#define fp(i,a,b) for(register int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(register int i=a,I=b-1;i>I;--i)
#define go(u) for(register int i=fi[u],v=e[i].to;i;v=e[i=e[i].nx].to)
#define file(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)
template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
template<class T>inline bool cmin(T&a,const T&b){return a>b?a=b,1:0;}
using namespace std;
const int N=305;
const double eps=1e-15;
typedef int arr[N];
typedef double d;
int n,m,p,q;arr dg,mp[N];d pr,ans[N],G[N][N];
inline int cmp(const d&x){return fabs(x)<eps?0:(x<0?-1:1);}
inline void Gauss(int n){int mx;d t;fp(i,1,n){mx=i;fp(j,i,n)if(cmp(G[mx][i]-G[j][i]))mx=i;if(mx^i)fp(j,i,n+1)swap(G[i][j],G[mx][j]);fp(j,i+1,n)if(cmp(G[j][i])){t=G[j][i]/G[i][i];fp(k,i,n+1)G[j][k]-=t*G[i][k];}}fd(i,n,1){fp(j,i+1,n)G[i][n+1]-=ans[j]*G[i][j];ans[i]=G[i][n+1]/G[i][i];}
}
int main(){#ifndef ONLINE_JUDGEfile("s");#endifscanf("%d%d%d%d",&n,&m,&p,&q);pr=1.0*p/q;while(m--){int u,v;scanf("%d%d",&u,&v);mp[u][v]=mp[v][u]=1;++dg[u],++dg[v];}fp(i,1,n)G[i][i]=1;fp(i,1,n)fp(j,1,n)if(mp[i][j])G[i][j]+=-(1.0-pr)/dg[j];G[1][n+1]=1;Gauss(n);fp(i,1,n)printf("%.9lf\n",ans[i]*pr);
return 0;
}
[Usaco2010Hol]Dotp相关推荐
- 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡 期望DP+高斯消元
[BZOJ1778][Usaco2010 Hol]Dotp 驱逐猪猡 Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300 ...
- BZOJ_1778_[Usaco2010 Hol]Dotp 驱逐猪猡_概率DP+高斯消元
BZOJ_1778_[Usaco2010 Hol]Dotp 驱逐猪猡_概率DP+高斯消元 题意: 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 3 ...
- bzoj 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44, ...
- [BZOJ 1778][Usaco2010 Hol]Dotp 驱逐猪猡
1778: [Usaco2010 Hol]Dotp 驱逐猪猡 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 690 Solved: 269 [Sub ...
- 2021年中国辛醇行业现状、进出口、竞争格局及未来发展趋势分析,DOTP产量增长对辛醇需求形成拉动「图」
一.辛醇综述 辛醇,又被称为正辛醇,是一种有机化合物,为无色透明油状液体,有强烈的油脂气味和柑橘气息,不与水混溶,但与乙醇.乙醚.氯仿混溶.从产品用途来看,辛醇主要用来制备邻苯二甲酸二辛酯(DOP). ...
- BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 [高斯消元 概率DP]
1778: [Usaco2010 Hol]Dotp 驱逐猪猡 题意:一个炸弹从1出发p/q的概率爆炸,否则等概率走向相邻的点.求在每个点爆炸的概率 高斯消元求不爆炸到达每个点的概率,然后在一个点爆炸就 ...
- ●Joyoi Dotp 驱逐猪猡
题链: http://www.joyoi.cn/problem/tyvj-2610 题解: 期望dp,高斯消元 对于每一种到达i点的方案,都存在一个概率p, 令dp[i]表示到达i点的期望次数,那么容 ...
- BZOJ 1778 [Usaco2010 Hol] Dotp 驱逐猪猡
Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44, ...
- 【bzoj1778】[Usaco2010 Hol]Dotp 驱逐猪猡 矩阵乘法+概率dp+高斯消元
题目描述 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44,850)条由两 ...
- BZOJ1778: [Usaco2010 Hol]Dotp 驱逐猪猡
BZOJ 题意 给你一张nnn个点mmm条边的无向图,最开始有一颗炸弹在一号节点,它有pq\frac{p}{q}qp的概率爆炸,如果没有爆炸,它会等概率的移动到另一个与当前节点相连的点,问炸弹分别在 ...
最新文章
- 孙立岩 python-basic: 用于学习python基础的课件(161718)
- 差分 c语言,c语言 bmp位图差分
- python获取列表list里面元素的下标
- 光是无限远服务器有道馆吗,光是无限远服务器客户端
- TTL转485电路设计
- mosca mysql_nodejs 完成mqtt服务端
- sql server 向mysql前移数据-单引号问题
- 刷题刷题 ——网易CPP
- 分析师:苹果或推出自家搜索引擎;曝因芯片缺货,华为智慧屏削减30-40%订单;Rust 1.46.0 发布|极客头条
- 快速部署简单私有云CloudStack(下)
- 微信开发者工具下载使用
- java 文件删除不了
- ubuntu12.10 使用lync
- 搜狗收录之搜狗推送神器
- 差距:我是如何一步步落后于别人
- [国家集训队2011]跳跳棋
- Aspose.Slides for java 22.9最新版 官网最新
- 鹅厂流出两份Android Framework技术宝典火了,完整版 PDF 限时开放下载
- poj3616 Miking Time dp
- Oracle取小数点部分
热门文章
- Codeforces-936B Sleepy Game
- 反射机制之取得类的结构
- WebSpider和一些杂七杂八
- 按键拨号声音 DTMF MATLAB程序样例
- Binomial Coefficient(二项式系数)的计算
- 【android】项目案例(二)之京东客户端
- IDEA中使用UT测试过程中的一些小问题
- CSS SVG开关按钮切换网页白天和夜晚
- shell脚本中执行ssh
- Entry name ‘res/color/material_on_surface_disabled.xml‘ collided