POJ 3744 Scout YYF I(概率+矩阵)
2013-05-04 12:33
363 查看
题目链接:http://poj.org/problem?id=3744
题意:在X坐标轴上有一些位置是陷阱。 一个人开始在1,每次向前跳一步的概率p,跳两步的概率1-p。求安全通过所有陷阱的概率。
思路:对于两个陷阱之间的设长度为L,其实就是就是从1跳到L的概率,f[0]=0,f[1]=1,f
=f[n-2]*(1-p)+f[n-1]*p。
题意:在X坐标轴上有一些位置是陷阱。 一个人开始在1,每次向前跳一步的概率p,跳两步的概率1-p。求安全通过所有陷阱的概率。
思路:对于两个陷阱之间的设长度为L,其实就是就是从1跳到L的概率,f[0]=0,f[1]=1,f
=f[n-2]*(1-p)+f[n-1]*p。
class Matrix { public: double a[2][2]; Matrix() { clr(a,0); } Matrix(double x,double y,double z,double w) { a[0][0]=x; a[0][1]=y; a[1][0]=z; a[1][1]=w; } Matrix operator*(Matrix b) { Matrix ans; int i,j,k; FOR0(k,2) FOR0(i,2) FOR0(j,2) { ans.a[i][j]+=a[i][k]*b.a[k][j]; } return ans; } }; Matrix a,b; int n,c[15]; double p; double get(int x) { if(x==0) return 0; x--; a=Matrix(0,1-p,1,p); b=Matrix(1,0,0,1); while(x) { if(x&1) b=b*a; a=a*a; x>>=1; } return b.a[1][1]; } int main() { Rush(n) { RD(p); int i; FOR1(i,n) RD(c[i]); sort(c+1,c+n+1); n=unique(c+1,c+n+1)-(c+1); double ans=1; i=1; while(i<=n) { ans*=get(c[i]-c[i-1]-1); ans*=(1-p); i++; } PR(ans); } return 0; }
相关文章推荐
- poj 3744 Scout (Another) YYF I - 概率与期望 - 动态规划 - 矩阵快速幂
- POJ 3744 Scout YYF I (矩阵优化,分段计算的概率DP)
- POJ 3744 Scout YYF I(矩阵优化的概率DP)
- [概率dp 矩阵乘法] poj 3744 Scout YYF I
- poj 3744 Scout YYF I(概率dp,矩阵优化)
- poj 3744 Scout YYF I (矩阵快速幂 优化 概率dp)
- poj 3744 Scout YYF I(矩阵优化概率DP)
- POJ 3744 Scout YYF I (矩阵优化的概率DP)
- POJ 3744 Scout YYF I 详细题解(矩阵优化概率DP)水题
- POJ 3744 Scout YYF I 概率DP matrix 一开始考虑错误TLE了
- POJ 3744 Scout YYF I(概率DP+数学)
- poj 3744 Scout YYF I(概率dp+矩阵快速幂)
- POJ 3744 Scout YYF I 概率dp+矩阵快速幂
- POJ 3744 Scout YYF I 概率DP + 矩阵快速幂
- POJ 3744:Scout YYF I 很好的一道概率题
- POJ 3744|Scout YYF I|概率DP
- POJ 3744 Scout YYF(概率DP+矩阵快速幂)
- POJ 3744 Scout YYF I 概率DP
- POJ 3744 Scout YYF I(概率DP)
- poj 3744 Scout YYF I(概率dp+矩阵快速幂)