博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Light OJ 1317 Throwing Balls into the Baskets 概率DP
阅读量:5909 次
发布时间:2019-06-19

本文共 830 字,大约阅读时间需要 2 分钟。

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 
#include
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;}

转载地址:http://zzvpx.baihongyu.com/

你可能感兴趣的文章
Struts2访问request,session,application的四种方式
查看>>
eclipse 自动为getter和setter添加注释
查看>>
用链表实现的栈和队列
查看>>
oracle--数据库
查看>>
5、KVM虚拟机热迁移实现
查看>>
驰骋工作流引擎设计系列12 工作质量考核设计
查看>>
UML
查看>>
JAVA环境变量设置-windows--Linux
查看>>
一个命令让Ubuntu升级变得更简单
查看>>
比较不错的Web工作流设计器
查看>>
合并排序
查看>>
php timeZone设置和他影响的函数
查看>>
第5章 限制
查看>>
tomecat无法启动是什么原因??
查看>>
XCode使用小记与代码管理
查看>>
spring同时集成mybatis和ibatis
查看>>
IRC 聊天工具(xchat,chatzilla,pidgin)入门教程
查看>>
Redis配置
查看>>
kafka 监控之Mx4jLoader
查看>>
wireshark windows 编译
查看>>