bzoj 1778 [Usaco2010 Hol]Dotp 驱逐猪猡 高斯消元
来源:互联网 发布:arm linux启动流程 编辑:程序博客网 时间:2024/05/07 07:31
设
那么
高斯消元解出f。设
注意eps至少1e-13
#include <bits/stdc++.h>using namespace std;#define N 310#define eps 1e-15#define ld long doubleint n,m;double P,Q;int mp[N][N],du[N];ld f[N][N],sum;int main(){ scanf("%d%d%lf%lf",&n,&m,&P,&Q); for(int i=1,x,y;i<=m;i++) { scanf("%d%d",&x,&y); mp[x][y]++;mp[y][x]++; du[x]++;du[y]++; } f[1][n+1]=1; for(int i=1;i<=n;i++) { f[i][i]=1; for(int j=1;j<=n;j++) if(mp[i][j]) f[i][j]+=((ld)P/Q-1)/du[j]*mp[i][j]; } for(int i=1;i<=n;i++) { int t=i; for(int j=i;j<=n;j++) if(fabs(f[j][i])>eps)t=j; for(int j=1;j<=n+1;j++) swap(f[i][j],f[t][j]); for(int j=1;j<=n;j++) if(j!=i&&fabs(f[j][i])>eps) { ld t=f[j][i]/f[i][i]; for(int k=1;k<=n+1;k++) f[j][k]-=f[i][k]*t; } } for(int i=1;i<=n;i++) sum+=(f[i][i]=f[i][n+1]/f[i][i]); for(int i=1;i<=n;i++) printf("%.9lf\n",(double)(f[i][i]/sum+eps)); return 0;}
0 0
- BZOJ 1778 [Usaco2010 Hol] Dotp 驱逐猪猡
- BZOJ 1778 Usaco2010 Hol Dotp 驱逐猪猡 期望DP+高斯消元
- bzoj 1778 [Usaco2010 Hol]Dotp 驱逐猪猡 高斯消元
- 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡【概率DP】【高斯消元】
- BZOJ1778 [Usaco2010 Hol]Dotp 驱逐猪猡
- BZOJ1778: [Usaco2010 Hol]Dotp 驱逐猪猡
- bzoj1778 [Usaco2010 Hol]Dotp 驱逐猪猡
- BZOJ 1778 Usaco2010 驱逐猪猡
- bzoj 1776: [Usaco2010 Hol]cowpol 奶牛政坛
- bzoj1778 驱逐猪猡 [高斯消元+概率DP]
- bzoj 1779: [Usaco2010 Hol]Cowwar 奶牛战争 (网络流)
- BZOJ 1776: [Usaco2010 Hol]cowpol 奶牛政坛 贪心lca/点分治
- [BZOJ1776] [Usaco2010 Hol]cowpol 奶牛政坛
- bzoj1776[Usaco2010 Hol]cowpol 奶牛政坛
- bzoj1777[Usaco2010 Hol]rocks 石头木头
- 【RMQ&LCA】[Usaco2010 Hol]cowpol…
- [BZOJ1779][Usaco2010 Hol]Cowwar 奶牛战争(最大流)
- [BZOJ1779][Usaco2010 Hol]Cowwar 奶牛战争(最大流)
- linux 命令行网页浏览器Lynx
- mysql explain分析
- opencart模板
- 插入排序算法
- Poi 操作 Excel
- bzoj 1778 [Usaco2010 Hol]Dotp 驱逐猪猡 高斯消元
- 仿造淘宝上拉加载详情控件
- think in UML读书笔记9 UML核心视图
- socket编程原理
- 关于 MySQL LEFT JOIN 你可能需要了解的三点
- 异常
- 位运算交换两个变量值
- python中的requests模块学习
- SolrRequest和SolrResponse源码