zoukankan      html  css  js  c++  java
  • [ CodeForces 518 D ] Ilya and Escalator

    (\)

    (Description)


    (n)个人排队进场,每一秒至多只能进去一个人,且只有当前排在第一位的人有 (p) 的概率进场。

    现在问 (t) 秒之后场内人数的期望。

    • (n,tle 2000)

    (\)

    (Solution)


    入门期望(DP),但是边界问题还是很有趣的。

    (f[i][j]) 表示第 (i) 秒已经入场 (j) 个人的概率,根据期望的定义,有

    [ans=sum_{i=1}^n i imes f[t][i] ]

    转移需要注意一下边界,下界只能从下界转移,上界转移自上界的时候不用乘概率

    [f[i][j]=left{ egin{array}{ll}f[i-1][0] imes(1-p) & j=0\f[i-1][j-1] imes p+f[i-1][j] imes (1-p) & 1le j<n \f[i-1][n]+f[i-1][n-1] imes p & j=nend{array} ight. ]

    (\)

    (Code)


    #include<cmath>
    #include<cstdio>
    #include<cctype>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define N 2010
    #define R register
    using namespace std;
    
    int n,t;
    
    double p,ans,f[N][N];
    
    int main(){
      scanf("%d%lf%d",&n,&p,&t);
      f[0][0]=1.0;
      for(R int i=1;i<=t;++i){
        f[i][0]=f[i-1][0]*(1.0-p);
        for(R int j=1;j<n;++j) f[i][j]=f[i-1][j-1]*p+f[i-1][j]*(1.0-p);
        f[i][n]=f[i-1][n]+f[i-1][n-1]*p;
      }
      for(R int i=1;i<=n;++i) ans+=(double)i*f[t][i];
      printf("%lf
    ",ans);
      return 0;
    }
    
    
  • 相关阅读:
    杭电2027
    杭电2028
    开发者所需要知道的iOS7 SDK新特性
    苹果已向这15款产品和应用宣战
    谷歌J2ObjC(Java to ObjectiveC)版本更新
    国外应用评测网站汇总
    iOS 7 UI设计官方图集
    iOS 7UI设计模板
    js中 setTimeout延时0毫秒的作用
    C# Xmlrpc
  • 原文地址:https://www.cnblogs.com/SGCollin/p/9794741.html
Copyright © 2011-2022 走看看