首先来个期望的论文,讲的非常好,里面也提到了使用线性方程组求解,尤其适用于有向图的期望问题. 算法合集之<浅析竞赛中一类数学期望问题的解决方法> http://www.lightoj.com/volume_showproblem.php?problem=1151 题意:有个1~100个格子的地图,每次投骰子,点数1~6,问到达第100格所需的投骰子次数期望值是多少,注意如果最后走的点数超出了地图,不算完成.地图中有传送门,a b表示从第a格可以到b格. 思路:首先可以想到DP的转移有两种,如果…
思路: 在没有梯子与蛇的时候很容易想到如下公式: dp[i]=1+(∑dp[i+j])/6 但是现在有梯子和蛇也是一样的,初始化p[i]=i; 当有梯子或蛇时转移为p[a]=b; 这样方程变为: dp[i]=1+(∑dp[p[i+j]])/6 再就是注意当i+j>100时,停在原地不变. 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #includ…
1778: [Usaco2010 Hol]Dotp 驱逐猪猡 题意:一个炸弹从1出发p/q的概率爆炸,否则等概率走向相邻的点.求在每个点爆炸的概率 高斯消元求不爆炸到达每个点的概率,然后在一个点爆炸就是\(\frac{f[i]}{sum}\) #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using na…
2337: [HNOI2011]XOR和路径 题意:一个边权无向连通图,每次等概率走向相连的点,求1到n的边权期望异或和 这道题和之前做过的高斯消元解方程组DP的题目不一样的是要求期望异或和,期望之间不能异或所以不能直接求 发现每个二进制位是独立的,我们可以一位一位考虑,设当前考虑第i位 \(f[u]\)表示从u到n异或和为1的概率, \[ f[u] = \sum_{(u,v) \in E,\ w(u,v)的第i位是1} \frac{f(v)}{degree_u} \\ f[u] = \sum_…
题意: 有一个N行M列的矩阵,机器人最初位于第i行和第j列.然后,机器人可以在每一步都转到另一个单元.目的是转到最底部(第N个)行.机器人可以停留在当前单元格处,向左移动,向右移动或移动到当前位置下方的单元格.如果机器人在最左侧的列中,则不能向左移动:如果机器人在最右侧的列中,则不能向右移动.在每一步中,所有可能的移动都是同等可能的.返回到达最底行的预期步数. 代码+题解: #include<stdio.h> #include<string.h> #include<math.…
看到题面的那一刻,我是绝望的ORZ 图论加概率期望加好像不沾边的高斯消元???我人直接傻掉 还没学过概率期望的我果断向题解屈服了(然后还是傻掉了两节课来找线性方程.. Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44,850)条由两个不同端点A_j和B_j (1 <= A_j<= N; 1 <= B_j <= N)表示的双向道路连接.…
题目来源:UVa 10828 Back to Kernighan-Ritchie 题意:从1開始 每次等概率从一个点到和他相邻的点 有向 走到不能走停止 求停止时每一个点的期望 思路:写出方程消元 方程有唯一解 多解 无解的情况 有环 一直再环里无法停止算无穷大 从1不能到的点期望为0 #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #include &l…
题目大意: 每条路径上有一个距离值,从1走到N可以得到一个所有经过路径的异或和,求这个异或和的数学期望 这道题直接去求数学期望的DP会导致很难列出多元方程组 我们可以考虑每一个二进制位从1走到N的平均概率值 因为整个图是联通的那么所有点都默认会处于多元方程组中 Pi = p[i] * sigma( v&d[i][j]?(1-Pj):Pj) v是当前二进制位代表的数值 这里需要注意的是自环的加边情况,自环只加一次边,不能向平时那样加无向边一样 #include <cstdio> #inc…
题意:1~100的格子,有n个传送阵,一个把进入i的人瞬间传送到tp[i](可能传送到前面,也可能是后面),已知传送阵终点不会有另一个传送阵,1和100都不会有传送阵.每次走都需要掷一次骰子(1~6且可能性一样),掷多少走多少,目的地超出100重掷,问你走到100所需掷骰子的期望. 思路:概率DP肯定的,但是会往前传送就很难直接算.用DP[i]代表从i走到100的期望. 那么如果i没有传送阵,则有:DP[i] = 1 / 6 * sum(DP[i + j]) + 1,1<= j <= 6,如果…
题目传送门 题目大意:10*10的地图,不过可以直接看成1*100的,从1出发,要到达100,每次走的步数用一个大小为6的骰子决定.地图上有很多个通道 A可以直接到B,不过A和B大小不确定   而且 如果99扔到100 那么只有1能走 扔其他的都要再扔一次      问从1走到100的扔骰子个数的期望 一篇讲的很好的题解 个人觉得,这道题期望没有可以加减的性质,(n不一定是从n-1过来的),所以不能采用这道题通过累加的递推.而每种状态如果写成式子,会发现$dp[100]$是已知的,而其他所有值都…