POJ 3744 Scout YYF I(概率DP+数学)

原创 2015年07月10日 09:13:21

不考虑地雷,设f[i]为在i位置上的概率。有f[i] = p * f[i-1] + (1 - p) * f[i-2]。

考虑地雷的话分段算就好了,然而这个问题的关键在于怎么求这个f[i]。


开始看见这个用的矩阵快速幂,,,结果T了【话说别人也有这样做没T的,但看了半天不知道怎么优化

所以就打算求f[i]通项【就是靠数学咯

算出来f[n] = f[1] * (1 - (p - 1)^n) / (2 - p)。

然后再用快速幂就过了!!而且是0ms!!!


代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>

using namespace std;
const int maxn = 15;

int a[maxn],n;
double p;

double mod_pow(double a,int k){
    double res = 1;
    while(k){
        if(k & 1) res = res * a;
        a *= a;
        k >>= 1;
    }
    return res;
}

int main(){
    while(~scanf("%d%lf",&n,&p)){
        for(int i=0;i<n;i++) scanf("%d",&a[i]);
        sort(a,a+n);
        if(a[0] == 1){
            printf("%.7f\n",0);
            continue;
        }
        int k;
        double f = 1;
        for(int i=0;i<n;i++){
            if(i == 0) k = a[i] - 1;
            else k = a[i] - a[i-1] - 1;
            f = f * (1 - mod_pow(p-1,k)) / (2 - p);
            f = f * (1 - p);
        }
        printf("%.7f\n",f);
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

POJ 3744 Scout YYF I(概率DP)

传送门 Scout YYF I Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7221 Accepted...

POJ 3744-Scout YYF I (概率DP+矩阵快速幂)

Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8894   Accepted: 2607...

POJ 3744 Scout YYF I (概率DP+矩阵快速幂)

题目地址:POJ 3744 一个线性概率DP递推式。dp[i]=p*dp[i-1]+(1-p)*dp[i-2]。但是i的值太大。所以可以分成n次,每一次中间过程的纯递推过程用矩阵快速幂来优化。只要想...

poj3744 Scout YYF I 概率dp+矩阵快速幂

题意:在一条路上布置了一些地雷,初始的时候你在起点1处,

poj 3744 Scout YYF I(概率dp+矩阵快速幂)

题意:有个人从1位置开始走,每次走1歩的概率为p,走两步的概率为1-p,在N个位置上有地雷,问这个人不踩到地雷通过的概率。 思路:可以看出安全走到某一位置的概率f(x)=f(x-1)*p+f(x-2...
  • qian99
  • qian99
  • 2014年03月17日 20:48
  • 569

poj 3744 Scout YYF I(矩阵优化概率DP)

Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5153   Ac...
  • caduca
  • caduca
  • 2014年11月03日 16:13
  • 538

POJ-3744 Scout YYF I (概率DP&&矩阵快速幂)

设dp[i]表示安全到达点i处的概率,则状态转移方程为:①点i处有雷,dp[i]=0;②点i出无雷,dp[i]=dp[i-1]*p+dp[i-2]*(1-p) 由于雷坐标的范围很大,而雷的数量很少,所...

POJ 3744 Scout YYF I (概率dp+矩阵优化)

Language: Default Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Su...

POJ 3744 Scout YYF I 矩阵快速幂+概率dp

题意:   yyf每次能走一步或二步概率为p和1-p 路上有n个地雷  分布在di位置上 问yyf能安全通过这条路的概率 分析 可以容易的得出 dp【i】=p*dp[i-1]+(1-p)*d...

POJ 3744 Scout YYF I (矩阵优化,分段计算的概率DP)

参考: http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710586.html 此题是一个用矩阵优化的求概率的题目。 主要思想是分...
  • guognib
  • guognib
  • 2013年10月26日 22:29
  • 580
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 3744 Scout YYF I(概率DP+数学)
举报原因:
原因补充:

(最多只允许输入30个字)