ZOJ 3551 Bloodsucker(概率DP)
2015-08-04 11:58
411 查看
思路:d[i]表示从i个人已变成吸血鬼到所以都变成吸血鬼天数的期望,那么则有d[i]=(d[i+1]+1)p1*p+(d[i]+1)*(1-p1)*p. p1=(i(n-i))/C(n,2)
#include<iostream> #include<cstdio> using namespace std; const int maxn=100008; int main() { int T,n; double p; double dp[maxn]; cin>>T; while(T--) { cin>>n>>p; dp =0; for(int i=n-1;i>0;i--) { double y=(double)n*(n-1)/2; double x=(double)i*(n-i); double p1=(x/y)*p; dp[i]=dp[i+1]+1/p1; } printf("%.3f\n",dp[1]); } return 0; }
相关文章推荐
- HDU1075 字典树
- 每天一个linux命令
- 实例讲解java定时任务
- Java与JSON相互转换
- Mercurial(Hg)基本操作
- JNI传递字符串数组J-StringArray
- css3新特性
- 详解Ruby on Rails中的mailer相关使用
- 自定义图片轮播控件
- zookeeper集群管理配置优化总结
- ACM-ICPC 2015 东亚洲大陆子赛区(Asia EastContinent Sub-region,包括中国大陆赛区)特别规则
- windows 下 使用codeblocks 实现C语言对python的扩展
- Linux查找方法
- makefile中的自动化变量$@,$%,$
- 磁盘与文档系统管理
- TCP/IP四层模型和OSI七层模型的概念
- Lucene 4.X 倒排索引原理与实现
- MakeFIle $@,$^,$<
- Java读书笔记十一(Java中的内省机制)
- CentOS6.4上glusterfs安装配置