传送门:>Here<

题意:有n个人排队做电梯,每个人必须等前面的人全部上了以后才能上。对于每秒钟,有p的概率选择上电梯,(1-p)的概率选择不上电梯。现在问t秒期望多少人上电梯

解题思路:

  期望DP。

  $f[i][j]$表示第i秒上了j个人的概率。

  $f[1][1] = p, f[1][0] = (1 - p)$,并且$f[i][0]$都需要初始化。($* (1 - p)$)

  这题好像和普通的期望DP不太一样啊,因为f数组设的是概率而不是期望。这样设的话答案就应该是$\sum\limits_{i = 0}^{Min(n, t)}f[t][i] * i$

  考虑如何转移:

  第i秒的时候不上人:$ f[i-1][j] * (1 - p) $

  第i秒的时候上人:$ f[i-1][j-1] * p $

  因此对于一般情况:$$f[i][j] = f[i-1][j] * (1 - p) + f[i-1][j-1] * p$$

  另外,总共就n个人,如果$t > n$就需要特判了:$$f[i][n] = f[i-1][n] + f[i-1][n-1]*p$$

Code

  还是边界条件!对于$f[i][j]$,由于每秒最多上一个人,所以$j$是不可能大于$i$的,要特判一下。

/*By QiXingzhi*/
#include <cstdio>
#include <queue>
#define  r  read()
#define  Max(a,b)  (((a)>(b)) ? (a) : (b))
#define  Min(a,b)  (((a)<(b)) ? (a) : (b))
using namespace std;
typedef long long ll;
const int N = 2010;
const int INF = 1061109567;
inline int read(){int x = 0; int w = 1; register int c = getchar();while(c ^ '-' && (c < '0' || c > '9')) c = getchar();if(c == '-') w = -1, c = getchar();while(c >= '0' && c <= '9') x = (x << 3) +(x << 1) + c - '0', c = getchar();return x * w;
}
int n,t;
double p,f[N][N],cur,ans;
int main(){
//    freopen(".in", "r", stdin);scanf("%d %lf %d",&n,&p,&t);f[1][1] = p;f[1][0] = 1-p;for(int i = 2; i <= t; ++i){f[i][0] = f[i-1][0] * (1-p);}for(int i = 2; i <= t; ++i){for(int j = 1; j <= n; ++j){if(j > i){break;}f[i][j] = f[i-1][j]*(1-p) + f[i-1][j-1]*p;}f[i][n] = f[i-1][n] + f[i-1][n-1] * p;}for(int i = 0; i <= n; ++i){if(i > t) break;ans += f[t][i] * i;} printf("%.8lf", ans);return 0;
}

转载于:https://www.cnblogs.com/qixingzhi/p/9347056.html

Codeforces518 D. Ilya and Escalator相关推荐

  1. 【CodeForces - 518D】Ilya and Escalator(概率dp,数学期望)

    题干: Ilya got tired of sports programming, left university and got a job in the subway. He was given ...

  2. linux redis-trib.rb,linux 关于redis-trib.rb构建redis集群

    之前搭建集群漏下的坑, 今次再搭一次. 环境 ruby环境 yum install ruby rubygems -y redis的gem环境 gem install redis-3.2.2.gem 部 ...

  3. Atlassian发布Kubernetes节点自动化扩展工具Escalator

    \ 看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料! \ \\ Atlassian把他们的内部工具Escalator发布为开源项目.该工具针对Kuberne ...

  4. Codeforces Round #311 (Div. 2) A. Ilya and Diplomas 水题

    A. Ilya and Diplomas Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/557/ ...

  5. Codeforces Round #297 (Div. 2)C. Ilya and Sticks 贪心

    Codeforces Round #297 (Div. 2)C. Ilya and Sticks Time Limit: 2 Sec  Memory Limit: 256 MB Submit: xxx ...

  6. Google研究员Ilya Sutskever:成功训练LDNN的13点建议

     Google研究员Ilya Sutskever:成功训练LDNN的13点建议 width="22" height="16" src="http: ...

  7. Ilya Muromets(DP or 思维)

    Ilya Muromets Gym - 100513F Силачом слыву недаром - семерых одним ударом! From the Russian cartoon o ...

  8. F - Ilya Muromets Gym - 100513F

    Силачом слыву недаром - семерых одним ударом! From the Russian cartoon on the German fairy tale. Ily ...

  9. ChatGPT背后真正的英雄:OpenAI首席科学家Ilya Sutskever的信仰之跃

    导读 ChatGPT的横空出世万众瞩目,但我们不应忘记在它背后默默无闻的天才.Ilya Sutskever是OpenAI的联合创始人和首席科学家.正是在他的领导下,OpenAI在开发尖端技术和推动人工 ...

最新文章

  1. 超越RetinaFace,腾讯优图 ASFD 已在 WIDER FACE 霸榜半年!
  2. 杭州「增长黑客」集结令!曲卉老师想约你来网易聊一聊
  3. 设计模式(10)-----模板方法模式
  4. 几何画板自定义工具_几何画板最强版 v5.06 中文版(含教程/实例/控件/打包机/工具集)...
  5. 初识WINCE的HIVE注册表
  6. 新松机器人电气三天考核_比技能更比匠心,3天内高手的这些作品令人惊叹……...
  7. 字符级Seq2Seq-英语粤语翻译的简单实现
  8. vue node php,vue node 是什么
  9. 截流式合流制设计流量计算_截流式合流制截污管设计污水量的实测统计方法
  10. Libra 骗局来了;嫦娥五号将利用 AI 确定登陆位置;GitHub 移除色情应用 DeepNude 的开源库 | 开发者周刊...
  11. ASP.NET C# 实现钉钉签名算法
  12. matlab设置图片背景透明_MATLAB设置图片背景透明,和设定大小,适合论文中使用...
  13. android 获取指纹图像,用于获取指纹图像的方法及指纹感测系统与流程
  14. 【python 算法接口】使用FastAPI框架快速构建高性能的api服务
  15. java 复制excel_Java 复制excel批注
  16. JMX : MXBean
  17. 智慧城市:未来已来,时尚生活不再遥不可及
  18. web之Cookies
  19. 软考之路--小桥流水人家
  20. 解决饿了么ui再次点击弹出框红检验文字还出现问题

热门文章

  1. 九度OJ 1048:判断三角形类型
  2. Linux学习笔记13--使用mount命令挂载CDROM
  3. JavaScript闭包初相识
  4. kali使用msf 通过ms17_010_eternalblue(永恒之蓝)漏洞攻击win7测试 及乱码问题解决
  5. 通向财务自由之路03_判断之偏好:掌握市场为何对多数人来说如此之难
  6. 报表移动端如何进行移动设备绑定与撤销
  7. 深入浅出 数据库索引
  8. 深入理解iPhone数据持久化(手把手教你iphone开发 - 基础篇)
  9. java如何使用while_java中的while(true)语句的用法是什么
  10. flutter listview 滚动到底部_Flutter系列之Flex布局详解