题目链接

\(Description\)

有1个吸血鬼和n-1个人,每天有且只会有两个人/吸血鬼相遇,如果是人与吸血鬼相遇,那个人会有p的概率变成吸血鬼;否则什么也不发生。求n个都变成吸血鬼的期望天数。

\(Solution\)

我还是写一下吧。。期望题一般倒着递推。

设\(f[i]\)为当前有\(i\)个吸血鬼,要变成\(n\)个吸血鬼的期望天数。那么\(f[n]=0\),答案即\(f[1]\).

一天要么变一个要么不变,很好想到:

\[f[i]=p_i(f_{i+1}+1)+(1-p_i)(f_i+1)
\]

\[p_i*f[i]=p_i*f[i+1]+1
\]

\[f[i]=\frac{1}{p_i}+f[i+1]
\]

而$$p_i=\frac{C(i,1)C(n-i,1)}{C(n,2)}p$$

那么$$f[i]=\frac{n(n-1)}{2i(n-i)p}+f[i+1]$$

#include <cstdio>

int main()
{
int T; scanf("%d",&T);
long long n; double p,res;
while(T--)
{
scanf("%lld%lf",&n,&p), res=0;
for(int i=n-1; i>=1; --i)
res += 1.0*(n*(n-1))/(2.0*i*(n-i)*p);
printf("%.3lf\n",res);
}
return 0;
}

ZOJ.3551.Bloodsucker(期望DP)的更多相关文章

  1. ZOJ 3551 Bloodsucker <概率DP>

    题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3551 题意:开始有N-1个人和一个吸血鬼, 每天有两个生物见面,当人 ...

  2. ZOJ 3822 Domination 期望dp

    Domination Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/showProblem ...

  3. zoj 3351 Bloodsucker(概率 dp)

    题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4530 dp[i]表示现在存在i个吸血鬼要达成目标(全为吸血鬼)天数的数学 ...

  4. One Person Game ZOJ - 3329(期望dp, 数学)

    There is a very simple and interesting one-person game. You have 3 dice, namely Die1, Die2 and Die3. ...

  5. ZOJ 3551 吸血鬼 概率DP

    解题报告链接: http://www.cnblogs.com/183zyz/archive/2012/09/13/2683524.html 做法:设当有i个吸血鬼时变成n个吸血鬼的天数的数学期望为dp ...

  6. Problem Arrangement ZOJ - 3777(状压dp + 期望)

    ZOJ - 3777 就是一个入门状压dp期望 dp[i][j] 当前状态为i,分数为j时的情况数然后看代码 有注释 #include <iostream> #include <cs ...

  7. poj 2096 , zoj 3329 , hdu 4035 —— 期望DP

    题目:http://poj.org/problem?id=2096 题目好长...意思就是每次出现 x 和 y,问期望几次 x 集齐 n 种,y 集齐 s 种: 所以设 f[i][j] 表示已经有几种 ...

  8. zoj 3822(概率dp)

    ZOJ Problem Set - 3822 Domination Time Limit: 8 Seconds      Memory Limit: 131072 KB      Special Ju ...

  9. ZOJ Problem Set - 3822Domination(DP)

    ZOJ Problem Set - 3822Domination(DP) problemCode=3822">题目链接 题目大意: 给你一个n * m的棋盘,每天都在棋盘上面放一颗棋子 ...

随机推荐

  1. 怎么使用 JavaScript 将网站后台的数据变化实时更新到前端

    实时这个工作现在大体有两种方法一.前端不断地向后台轮询请求数据查询的接口(不管你是用AJAX还是什么)然后将返回的数据重绘在页面上,这以前端页面为主动的方式.二.如果浏览器支持Websocket 那么 ...

  2. 数据绑定和第一个AngularJS Web应用

    <!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...

  3. lucene查询索引之Query子类查询——(七)

    0.文档名字:(根据名字索引查询文档)

  4. 安装asp.net mvc4后mvc3项目编译报错

    安装asp.net mvc4之后,之前的mvc3项目编译时报这个错“The type System.Web.Mvc.ModelClientValidationRule exists in both c ...

  5. @PostContruct注解

    @PostContruct是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法.

  6. 数组的splice方法

    splice 该方法向或者从数组中添加或者删除项目,返回被删除的项目,同时也会改变原数组. splice(index,howmany,item1,...itemX) index参数:必须,整数,规定添 ...

  7. Restful对于URL的简化

    REST是英文representational state transfer(表象性状态转变)或者表述性状态转移,它是web服务的一种架构风格.使用HTTP,URI,XML,JSON,HTML等广泛流 ...

  8. 【前端vue开发】vue开发总结

  9. 如何将同一个APP中的不同activity在Recent(最近任务)中显示?

    需求描述 在应用Application1中存在A.B两个activity,当在应用启动了A.B activity,点击Recent键,如何让A.B两个activity都显示在Recent界面(最近任务 ...

  10. _findfirst和_findnext

    1.首先是_finddata结构体,用于存储文件信息的结构体. 2._findfirst函数:long _findfirst(const char *, struct _finddata_t *); ...