时间流逝(flow)

Time Limits: 1s Memory Limits: 256MB

Description
生活可以很简单。可以探索水底世界的神秘,也可以去发现奇特新生物,亦或踏上一段新生的旅程。在必须要迎接挑战或跟周围的生物进行生存争夺之前,享受自由的飞翔。此时你会觉得生活是如此美好。
像蛇喜欢吃浮游生物一样(哦,我好像忘记告诉你这个常识),每天,你可以吃一些你周围的基础生物,然后会在你的尾巴上得到一个能量圈。你将会有好多种不同的能量圈,每一个都会被赋予一个能量。你可以拥有多个同种的能量圈,但是对于新得到的能量圈,它的能量不能大于你已拥有的任何一个能量圈。在前面规则的前提下,获得新的能量圈的种类的概率是一样的。一天天过去,你得到越来越多的能量,开始了进化演变。
但是你也有自己的问题,有时你会面对邪恶的果冻鱼。它会追着你咬你,你不得不扔出最小能量值的能量圈然后赶忙逃跑。在这种情况下,你不会有任何的胃口了,因此这天你将不再得到任何能量圈。幸好,当你没有任何能量圈的时候,果冻鱼就算看见你也不会追着你,此时你可以好好地享用美食。
你听说当你的总的能量值超过了某个阈值之后,可以进化成强大模式并能够吃掉果冻鱼。是时候反击了!下面是本题的问题:预计要过多少天你才能进化成强大模式?(第一天默认你没有任何能量圈)

Input
输入包含多个测例。对每个测例会有两行。第一行是一个浮点数P,一个整数T和一个整数N。P是每天遇到果冻鱼的概率,T是阈值。第二行是N个不同的正整数,表示每一种能量圈的能量值。

Output
对于每个测例,输出一行表示预计要过多少天你的能量值能够超过阈值,四舍五入到三位小数。

Sample Input

0.5 0 1
1
0.5 1 2
1 2

Sample Output

1.000
2.000

Hint
对于所有数据,0.1≤P≤0.9,1≤T≤50,1≤N≤30。


一道概率题。
这种最不走运能够走∞步,想用无穷级数,因为走法太恶心,所以行不通。
然而解决期望的另一种是DP设期望,然后得出方程。

将能量值排序。

设 fx,y 表示由状态{能量总和为x,最小能量环为第y小}到终点 x′>T 的期望天数
那么 fx,y 有 p′ 的概率被吃掉一个环( p′=p(x>0)  p′=0(x=0) ),即有 p′ 的概率由 ffa+1 转移来;有 1−p′ 的概率往下走,也就是说有 1−p′ 的概率由 fai,i+1i 转移过来。
即:

fx,y=p′(ffa+1)+1−p′y∑i=1yfx+ai,i+1

考虑递归,每个状态返回用 ffa 表示 fx,y 的方法,它是个一元一次多项式。

那么用 fx,y 表示 fx+ai,i 后, 1−p′y∑yi=1fx+ai,i+1 也可以用 fx,y 表示,设其为 Afx,y+B

原式化为

fx,y=p′ffa+p′+Afx,y+B

解方程

fx,y=p′1−Affa+p′+B1−A

这样就表示好了。

递归 f(0,n) ,这时 ffa=0

#include<cstring>
#include<cstdio>
#include<algorithm>
#define db doubleusing namespace std;int n,lim,v[40];
db p;
struct fc{db a,b;};fc operator+(fc a,fc b){return (fc){a.a+b.a,a.b+b.b};}
fc operator+(fc a,db b){return (fc){a.a,a.b+b};}
fc operator*(fc a,db b){return (fc){a.a*b,a.b*b};}fc P(int s,int x){if(s>lim)return (fc){0,0};fc ex=(fc){0,0};db _p=(s?1-p:1)/(db)x;for(int i=1;i<=x;i++)ex=ex+(P(s+v[i],i)+1)*_p;if(s){db t=1-ex.a;return (fc){p/t,(ex.b+p)/t};}return (fc){0,ex.b/(1-ex.a)};
}int main(){freopen("flow.in","r",stdin);freopen("flow.out","w",stdout);while(~scanf("%lf %d %d",&p,&lim,&n)){for(int i=1;i<=n;i++)scanf("%d",&v[i]);sort(v+1,v+n+1);printf("%.3lf\n",P(0,n).b);}fclose(stdin);fclose(stdout);return 0;
}

时间流逝(flow)——概率题相关推荐

  1. 两道概率题-供大家周末把玩

    两道概率题-供大家周末把玩 题目 1.给定一个函数rand5(),该函数能等概率生成1-5之间的整数(包括1和5),如何用该函数等概率生成整数1-7? 解法 本以为很简单,做了以后才发现其实并不简单, ...

  2. python羊车门问题_「羊车门」经典概率题中不换门选中车的概率是多少?

    今天用Python求解「羊车门」经典的概率问题,对概率学基础和Python语法的灵活运用有所收货. 本次「羊车门」求解过程采用的是:穷举法计算概率已验证概率学基础理论.期间重点借鉴了'奥卡姆剃刀的博客 ...

  3. 从14连号概率题来看“做学问不知足”

    前几天,博客摘录了< 裘法祖:"做人要知足,做事要知不足,做学问要不知足." >,后来又写了< 一个概率题:从1138号中抽签514号,有14个连号的概率多少? ...

  4. 基于2022高考数学全国卷I概率题解题思路初步分析新冠病毒疫苗

    基于2022高考数学全国卷I概率题解题思路初步分析新冠病毒疫苗 1. 2022高考数学全国卷I概率题 2. 卡方(χ2\chi^2χ2)检验原理回顾 3. 解答2022高考数学全国卷I概率题 4. 上 ...

  5. 【面试题】概率题总结(随机数、抛硬币)

    这部分内容会在notion中继续更新 概率题 题目1 两个人轮流抛硬币,规定第一个抛出正面的人可以吃到苹果,请问先抛的人能吃到苹果的概率多大? 答案:轮流制先抛的人吃到苹果的概率: 1 / 2 + 1 ...

  6. 尝试用python解概率题,并祝大小朋友儿童节快乐

    实题操作 1. 三个人独立地去破译一份密码,每人能独立译出这份密码的概率分别为1/5, 1/3, 1/4.则这份密码被译出的概率为(3/5). def success():p = 1/5,1/3,1/ ...

  7. java判断五张牌中有一对,五张同花顺概率,52张扑克牌,任取5张牌,求出现一对、两对、同花顺的概率。 请帮忙解决一下这道概率题,求详细的列出式......

    Q1:52张扑克牌,任取5张牌,求出现一对.两对.同花顺的概率. 请帮忙解决一下这道概率题,求详细的列出式... 给你三个式子:1*3/51*48/50*44/49*40/48这个是出现一对的概率 2 ...

  8. 连续出错的概率_连续抛硬币问题+三个概率题

    最近遇到了下面几个有关概率的题目.好久没有接触概率题的我尝试解了一下,顺便查了一些资料,把感想和解题方法写了下来. 1.投掷硬币,求在连续两次出现背面之前连续五次出现正面的概率. 其实这个问题有个背景 ...

  9. 面试中的概率题(持续更新中)

    概率题 1.飞机上有100个座位,有100个乘客准备登机,每个乘客按顺序上飞机,但是第一个乘客喝醉了,随机挑了一个座位来坐.每个乘客的选座位规则:1)如果自己的座位没被坐,则坐自己的位置:2)如果自己 ...

最新文章

  1. side menu待研究
  2. 知识图谱的皇冠:知识图谱推理的前世今生
  3. python pip-python的pip安装以及使用教程
  4. python小白——进阶之路——day6天---字符串相关相关函数,格式化(format)
  5. Revit二次开发The symbol is not active
  6. JQuery------Select标签的各种使用方法
  7. java day42【综合练习】
  8. 2013年最新热门软件分享第一季
  9. 计算机怎么合并单元格并保存内容,怎么合并单元格并保留所有数据
  10. 《虎胆龙威4_终极警探4》
  11. 阿里云大数据ACP认证学习笔记
  12. 笔记本计算机在桌面显示器,解决办法:笔记本电脑如何关闭屏幕,但仍可以使用?...
  13. Python教程:去除背景,我保证不动她一根头发(附多种方式)
  14. 用于威胁情报分析的虚拟机
  15. 立足现实 与时俱进:C++ 1991-2006 reference
  16. 轻松主义或许是一剂良药!
  17. SCN Headroom过低问题处理
  18. 数据库SQL语句练习45道 习题归纳
  19. 复数系下常量乘向量的范数
  20. 怎样谈网站建设项目需求

热门文章

  1. 一定要学会这十种排骨做法
  2. python channels 简介
  3. 一个小仓鼠的js动画
  4. Hexo博客备份移植填坑记
  5. ftok函数参数解析
  6. 带你了解gLog库,一篇gLog库的总结
  7. WannaCry 主要利用的哪个漏洞进行攻击的?
  8. Python 基础语法(runoob)
  9. DNS记录类型有哪些,分别代表什么含义?
  10. 李宏毅机器学习--回归2022.07.13