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;
}


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

【POJ3744】Scout YYF I

概率DP
  • sdfzchy
  • sdfzchy
  • 2017年07月28日 19:48
  • 166

poj3744--Scout YYF I(概率dp第五弹:矩阵优化)

Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5093   Ac...
  • u013015642
  • u013015642
  • 2014年10月27日 08:57
  • 1090

【POJ3744】【概率DP 分块思想】 Scout YYF I 走一步概率p,走两步概率1-p,之间有n个雷,求安全通过的概率

传送门:POJ 3744 Scout YYF I 描述: Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Sub...
  • guhaiteng
  • guhaiteng
  • 2016年09月28日 20:20
  • 375

poj-3744-Scout YYF I-矩阵乘法

f[i]=f[i-1]*p+f[i-2]*(1-p); 正好可以用矩阵加速。。。。 #include #include #include #include #include using names...
  • rowanhaoa
  • rowanhaoa
  • 2014年06月20日 22:47
  • 1001

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

概率DP+矩阵快速幂
  • yj19951226
  • yj19951226
  • 2016年03月02日 13:36
  • 146

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

http://poj.org/problem?id=3744 有n个雷,某人的起始位置在1,每次走一步的概率为p,走两步的概率是1-p,给出n个雷的位置,问最后成功走出雷区的概率。 放在高中应...
  • u013081425
  • u013081425
  • 2014年09月05日 00:01
  • 913

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

poj 3744 Scout YYF I (概率DP+矩阵快速幂) —— black 的专栏 —— waShaXiu
  • u012596172
  • u012596172
  • 2014年10月18日 16:38
  • 518

POJ 3744 Scout YYF I (概率dp+矩阵快速幂,好题)

题目大意 本题很容易求出状态转移方程dp[I]=p∗dp[I−1]+(1−p)∗dp[I−2]dp[I] = p*dp[I-1]+(1-p)*dp[I-2],但是很容易发现这道题的n很大,线性算肯...
  • chen_ze_hua
  • chen_ze_hua
  • 2016年10月15日 11:29
  • 97

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

Scout YYF I Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5505 Accepted: 1523 Descripti...
  • aosakixuan
  • aosakixuan
  • 2015年03月19日 14:43
  • 256

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

Language: Default Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Su...
  • u014737310
  • u014737310
  • 2015年03月17日 23:07
  • 331
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 3744 Scout YYF I(概率DP+数学)
举报原因:
原因补充:

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