BZOJ 1778 Usaco2010 驱逐猪猡
来源:互联网 发布:深圳数据恢复中心 编辑:程序博客网 时间:2024/05/28 17:04
本题我用一个更直观的方法来求解,与网上的做法不同。
提示:
1. 在每个城市中爆炸的概率和另外一个量有关,也就是说我们尝试间接求这个概率,容易许多。
2. 这个量我们经常在概率问题中碰到,可以考虑猜猜我们经常求的那些……
注意: 输出带上
代码后我将详细说明:
#include <bits/stdc++.h>using namespace std;const int maxn = 310;int n , m ;double p , q;int g[maxn][maxn] , e[maxn];double a[maxn][maxn];void gaussJohdan(){ for(int i=1;i<=n;i++) { int r = i; for(int j=i+1;j<=n;j++) if(fabs(a[j][i]) > fabs(a[r][i])) r = j; if(r != i) for(int j=1;j<=n+1;j++) swap(a[i][j] , a[r][j]); for(int k=1;k<=n;k++) if(k != i) for(int j=n+1;j>=i;j--) a[k][j] -= a[k][i] / a[i][i] * a[i][j]; }}int main(int argc, char *argv[]) { cin>>n>>m>>p>>q; p /= q; p = 1-p; while(m--) { int x , y; scanf("%d%d" , &x , &y); g[x][y] = g[y][x] = 1; e[x]++; e[y]++; } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) if(g[i][j]) a[i][j] = p / e[j]; a[i][i] --; } a[1][n+1]--; gaussJohdan(); double all = 0; for(int i=1;i<=n;i++) all += a[i][n+1]/=a[i][i]; for(int i=1;i<=n;i++) printf("%.9lf\n" , fabs(a[i][n+1]/all)); return 0;}
我们求出每个城市的期望经过次数
这个我想并不难理解,因为每经过一次爆炸的可能都是相同的,所以每个城市爆炸的概率就与每个城市的期望经过次数正相关。然而求期望经过次数我想难不到读者吧。
0 0
- BZOJ 1778 Usaco2010 驱逐猪猡
- BZOJ 1778 [Usaco2010 Hol] Dotp 驱逐猪猡
- BZOJ 1778 Usaco2010 Hol Dotp 驱逐猪猡 期望DP+高斯消元
- bzoj 1778 [Usaco2010 Hol]Dotp 驱逐猪猡 高斯消元
- BZOJ1778 [Usaco2010 Hol]Dotp 驱逐猪猡
- BZOJ1778: [Usaco2010 Hol]Dotp 驱逐猪猡
- bzoj1778 [Usaco2010 Hol]Dotp 驱逐猪猡
- 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡【概率DP】【高斯消元】
- bzoj1778 驱逐猪猡 [高斯消元+概率DP]
- BZOJ 1785 [Usaco2010 Jan]telephone
- BZOJ 1783 [Usaco2010 Jan]Taking Turns
- BZOJ 2021 [Usaco2010 Jan]Cheese Towers
- bzoj 1776: [Usaco2010 Hol]cowpol 奶牛政坛
- bzoj 1783: [Usaco2010 Jan]Taking Turns
- 【bzoj 1782】: [Usaco2010 Feb]slowdown 慢慢游
- Bzoj 1783: [Usaco2010 Jan]Taking Turns
- bzoj 2016: [Usaco2010]Chocolate Eating (二分)
- BZOJ 2101: [Usaco2010 Dec]Treasure Chest 藏宝箱
- Markdown 插入数学公式
- libnet入门
- java基础算法之随机数的产生
- BZOJ4514 [Sdoi2016]数字配对
- 实用知识:CoreLocation的使用(计算速度)
- BZOJ 1778 Usaco2010 驱逐猪猡
- hadoop正式学习之redis---redis优化
- MySQL 数据的插入、更新和删除
- 仿QQ获取设备中APK并分享
- Android5.0之CoordinatorLayout的使用
- Boost库单元测试使用配置
- 小白工程师 html+php+mysql 实例
- BZOJ4503 两个串
- 判断连通性 欧拉回路的性质 UVA10129