博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3744 Scout YYF I(概率+矩阵)
阅读量:7113 次
发布时间:2019-06-28

本文共 1090 字,大约阅读时间需要 3 分钟。

题目链接:

题意:在X坐标轴上有一些位置是陷阱。 一个人开始在1,每次向前跳一步的概率p,跳两步的概率1-p。求安全通过所有陷阱的概率。

思路:对于两个陷阱之间的设长度为L,其实就是就是从1跳到L的概率,f[0]=0,f[1]=1,f[n]=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;}

  

转载地址:http://fmghl.baihongyu.com/

你可能感兴趣的文章
linux上安装启动elasticsearch-5.5.1完整步骤
查看>>
Silverlight 4 MVVM开发方式(一)小黑端
查看>>
公告:CSDN博客频道新功能正式上线!
查看>>
Web服务的体系架构
查看>>
linux下apache的使用
查看>>
UML对象图(转载)
查看>>
Computer skills one can learn within one day
查看>>
关于删除MySQL Logs的一点记录
查看>>
[cb]Unity 项目架构
查看>>
spin_lock & mutex_lock的区别?
查看>>
居安思危,奋发图强,别整那些没用的
查看>>
数据库的备份与还原
查看>>
C语言清空输入缓冲区的N种方法对比【转】
查看>>
zabbix安装配置及监控脚本编写案例【转】
查看>>
linux USB HOST之EHCI和OHCI【转】
查看>>
使用 systemd timer 备份数据库
查看>>
php中的cookie用法
查看>>
编译kernel:make Image uImage与zImage的区别
查看>>
Struts2工作原理及流程
查看>>
kindeditor编辑器图片水印
查看>>