Light OJ 1317 Throwing Balls into the Baskets 概率DP
2024-08-31 11:19:40
n个人 m个篮子 每一轮每一个人能够选m个篮子中一个扔球 扔中的概率都是p 求k轮后全部篮子里面球数量的期望值
依据全期望公式 进行一轮球数量的期望值为dp[1]*1+dp[2]*2+...+dp[n]*n 记为w
当中dp[i]为i个人扔中的概率 dp[i] = C(n, i)*p^i*(1-p)^(n-i) 终于答案为w*k
#include <cstdio>
#include <cstring>
using namespace std;
double dp[20];
double a[20], b[20]; double cm(int n, int m)
{
double ans = 1;
for(int i = 1; i <= m; i++)
{
ans *= (double)n--;
ans /= (double)i;
}
return ans;
}
int main()
{
int T;
int cas = 1;
scanf("%d", &T);
while(T--)
{
int n, m, k;
double p;
scanf("%d %d %d %lf", &n, &m, &k, &p);
dp[0] = a[0] = b[0] = 1;
for(int i = 1; i <= n; i++)
{
a[i] = a[i-1]*p;
b[i] = b[i-1]*(1-p);
}
for(int i = 0; i <= n; i++)
{
dp[i] = cm(n, i)*a[i]*b[n-i];
}
double ans = 0;
for(int i = 1; i <= n; i++)
ans += dp[i]*(double)i;
ans *= (double)k;
printf("Case %d: %.10lf\n", cas++, ans);
}
return 0;
}
最新文章
- 磁盘配额-----quota
- 转载一篇关于ios copy的文章
- SQLServer学习笔记<;>;sql的范围内查找,sql数据类型,字符串处理函数
- hdu 1142 用优先队列实现Dijkstra
- 引擎设计跟踪(九.14.2f) 最近更新: OpenGL ES &; tools
- linux传送文件至服务器
- linux的fork函数
- Orchard路由随记(一)
- 优步uber司机怎么注册不了?注册优步司机问题要点
- Cocos2d-x 3.1.1开发环境
- 1755: [Usaco2005 qua]Bank Interest
- python教程6-4:算数
- 找到链表的倒数第K位
- Android Material Design(一)史上最全的材料设计控件大全
- 【34】包含min函数的stack
- Tomcat 调优方案
- linux目录的特点
- 第一次实验: CC2530平台上电源管理与休眠
- RDLC报表系列--------初级报表
- linux bash shell:最方便的字符串大小写转换(lowercase/uppercase conversion) (转)
热门文章
- java基础——transient
- VB.NET机房收费系统总结
- MyEclipse改动内存大小
- 给centos重新安装yum的base-repo源
- Spark RDD概念学习系列之Pair RDD的action操作
- spring事务,TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- ORA-16019 和 ORA-16018 错误的处理方法(转)
- Redis的配置文件详解
- border-spacing和borer-collapse以及empty-cells属性
- SQL 学习——简序以及学习路线