这个还挺友好的,自己相对轻松能想出来~
令 $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 驱逐猪猡 概率与期望+高斯消元相关推荐

  1. BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 [高斯消元 概率DP]

    1778: [Usaco2010 Hol]Dotp 驱逐猪猡 题意:一个炸弹从1出发p/q的概率爆炸,否则等概率走向相邻的点.求在每个点爆炸的概率 高斯消元求不爆炸到达每个点的概率,然后在一个点爆炸就 ...

  2. [BZOJ 1778][Usaco2010 Hol]Dotp 驱逐猪猡

    1778: [Usaco2010 Hol]Dotp 驱逐猪猡 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 690  Solved: 269 [Sub ...

  3. BZOJ 1778 [Usaco2010 Hol] Dotp 驱逐猪猡

    Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44, ...

  4. 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 ...

  5. BZOJ 1778 [Usaco2010 Hol]Dotp 驱逐猪猡 ——期望DP

    思路和BZOJ 博物馆很像. 同样是高斯消元 #include <map> #include <ctime> #include <cmath> #include & ...

  6. bzoj 1778: [Usaco2010 Hol]Dotp 驱逐猪猡

    Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44, ...

  7. bzoj 1778 [Usaco2010 Hol]Dotp 驱逐猪猡

    http://www.elijahqi.win/archives/3299 Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= ...

  8. BZOJ 1778 Usaco2010 Hol Dotp 驱逐猪猡 期望DP+高斯消元

    题目大意:给定一个无向图,炸弹从1号节点出发,每个时刻有P/Q的概率爆炸,如果某个时刻没有爆炸,就会等概率沿着随机一条出边走到下一个城市,求最终每个城市的爆炸概率 #include <cmath ...

  9. bzoj 1778: [Usaco2010 Hol]Dotp 驱逐猪猡【dp+高斯消元】

    算是比较经典的高斯消元应用了 设f[i]为i点答案,那么dp转移为f[u]=Σf[v]*(1-p/q)/d[v],意思是在u点爆炸可以从与u相连的v点转移过来 然后因为所有f都是未知数,高斯消元即可( ...

最新文章

  1. ArrayList源码学习
  2. 远离这样的管理层:靠加班、靠团建、靠个人
  3. MPB:微生物所王军组-​人类肠道病毒粒子富集及纳米孔测序
  4. leetcode 1721. Swapping Nodes in a Linked List | 1721. 交换链表中的节点(Java)
  5. 案例 github_github 项目搜索技巧-让你更高效精准地搜索项目
  6. r语言中正定矩阵由于误差不正定_R语言之数据处理(一)
  7. 如果你也在学python,准备要学习python,希望这篇文章对你有用。
  8. ubuntu16 安装mysql5.7_ubuntu16中安装MySQL5.7.29
  9. JS函数生成器,function* () {}
  10. JVM 方法调用之动态分派
  11. ASP.Net 服务器应用程序不可用 解决方法
  12. Hadoop YARN配置参数剖析(5)—Capacity Scheduler相关参数
  13. SAP MM物料管理系统功能详解
  14. matlab绘制数字滤波器的幅频响应曲线
  15. html js post提交表单,JavaScript 实现POST方式提交表单
  16. vue给标签动态添加元素_动态添加dom元素,并绑定vue事件
  17. 《服务外包概论》知识点梳理
  18. 小体积智能直流无刷伺服电机驱动控制器TMCM
  19. 【笔记】html文件的图片上添加文字说明或者链接文字
  20. vmware 虚拟机启动时,提示 虚拟设备“sata0:1”将开始断开连接

热门文章

  1. 【研究报告】从单目深度估计到单目三维场景重建-沈春华老师-VALSE Webinar 22-13(总第279期)
  2. 探索 TDengine在《图码联侦》项目中的应用可行性及实践研究
  3. 世界上最有名的十大思想实验
  4. 电商数据分析指标体系
  5. golang压缩图片
  6. 单臂路由器互联VLAN实验-Cisco Packet Tracer
  7. 计步器(Pedometer)实现原理简介
  8. 当把Python的过程文件发给其他人,如何方便别人快速下载过程文件所需要的库
  9. UEFI 安装win7 不用格式化
  10. ufs 固态硬盘_东芝首发UFS 3.0闪存:性能媲美高端PC 固态硬盘