BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 概率与期望+高斯消元
这个还挺友好的,自己相对轻松能想出来~
令 $f[i]$ 表示起点到点 $i$ 的期望次数,则 $ans[i]=f[i]\times \frac{p}{q}$
#include <cmath>
#include <cstdio>
#include <algorithm>
#define N 305
#define setIO(s) freopen(s".in","r",stdin) , freopen(s".out","w",stdout)
using namespace std;
int edges;
double f[N][N];
int deg[N],hd[N],to[N*N],nex[N*N];
void add(int u,int v)
{ nex[++edges]=hd[u],hd[u]=edges,to[edges]=v;
}
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,m,p,q,i,j; double in,out; scanf("%d%d%d%d",&n,&m,&p,&q); in=1.0*(double)(1.0*p/q),out=1.0-in; for(i=1;i<=m;++i) {int a,b; scanf("%d%d",&a,&b),add(a,b),add(b,a),++deg[a],++deg[b]; } f[1][n+1]=1; for(i=1;i<=n;++i) {f[i][i]=1; for(j=hd[i];j;j=nex[j]) {int v=to[j]; f[i][v]=-((1.0/deg[v])*out); } } Gauss(n); for(i=1;i<=n;++i) {printf("%.9f\n",f[i][n+1]*in); }return 0;
}
转载于:https://www.cnblogs.com/guangheli/p/11529600.html
BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 概率与期望+高斯消元相关推荐
- BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 [高斯消元 概率DP]
1778: [Usaco2010 Hol]Dotp 驱逐猪猡 题意:一个炸弹从1出发p/q的概率爆炸,否则等概率走向相邻的点.求在每个点爆炸的概率 高斯消元求不爆炸到达每个点的概率,然后在一个点爆炸就 ...
- [BZOJ 1778][Usaco2010 Hol]Dotp 驱逐猪猡
1778: [Usaco2010 Hol]Dotp 驱逐猪猡 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 690 Solved: 269 [Sub ...
- BZOJ 1778 [Usaco2010 Hol] Dotp 驱逐猪猡
Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44, ...
- BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 (高斯消元)
题面 题目传送门 分析 令爆炸概率为PPP.设 f(i)=∑k=0∞pk(i)\large f(i)=\sum_{k=0}^{\infty}p_k(i)f(i)=∑k=0∞pk(i),pk(i)p ...
- BZOJ 1778 [Usaco2010 Hol]Dotp 驱逐猪猡 ——期望DP
思路和BZOJ 博物馆很像. 同样是高斯消元 #include <map> #include <ctime> #include <cmath> #include & ...
- bzoj 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44, ...
- bzoj 1778 [Usaco2010 Hol]Dotp 驱逐猪猡
http://www.elijahqi.win/archives/3299 Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= ...
- BZOJ 1778 Usaco2010 Hol Dotp 驱逐猪猡 期望DP+高斯消元
题目大意:给定一个无向图,炸弹从1号节点出发,每个时刻有P/Q的概率爆炸,如果某个时刻没有爆炸,就会等概率沿着随机一条出边走到下一个城市,求最终每个城市的爆炸概率 #include <cmath ...
- bzoj 1778: [Usaco2010 Hol]Dotp 驱逐猪猡【dp+高斯消元】
算是比较经典的高斯消元应用了 设f[i]为i点答案,那么dp转移为f[u]=Σf[v]*(1-p/q)/d[v],意思是在u点爆炸可以从与u相连的v点转移过来 然后因为所有f都是未知数,高斯消元即可( ...
最新文章
- ArrayList源码学习
- 远离这样的管理层:靠加班、靠团建、靠个人
- MPB:微生物所王军组-​人类肠道病毒粒子富集及纳米孔测序
- leetcode 1721. Swapping Nodes in a Linked List | 1721. 交换链表中的节点(Java)
- 案例 github_github 项目搜索技巧-让你更高效精准地搜索项目
- r语言中正定矩阵由于误差不正定_R语言之数据处理(一)
- 如果你也在学python,准备要学习python,希望这篇文章对你有用。
- ubuntu16 安装mysql5.7_ubuntu16中安装MySQL5.7.29
- JS函数生成器,function* () {}
- JVM 方法调用之动态分派
- ASP.Net 服务器应用程序不可用 解决方法
- Hadoop YARN配置参数剖析(5)—Capacity Scheduler相关参数
- SAP MM物料管理系统功能详解
- matlab绘制数字滤波器的幅频响应曲线
- html js post提交表单,JavaScript 实现POST方式提交表单
- vue给标签动态添加元素_动态添加dom元素,并绑定vue事件
- 《服务外包概论》知识点梳理
- 小体积智能直流无刷伺服电机驱动控制器TMCM
- 【笔记】html文件的图片上添加文字说明或者链接文字
- vmware 虚拟机启动时,提示 虚拟设备“sata0:1”将开始断开连接