设为首页 加入收藏

TOP

Light OJ 1317 Throwing Balls into the Baskets 概率DP
2015-07-20 17:31:52 来源: 作者: 【 】 浏览:2
Tags:Light 1317 Throwing Balls into the Baskets 概率

?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; }
   
  



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇CodeForces 321A Ciel and Robot.. 下一篇DirectShow中写push模式的source ..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·在 Redis 中如何查看 (2025-12-26 03:19:03)
·Redis在实际应用中, (2025-12-26 03:19:01)
·Redis配置中`require (2025-12-26 03:18:58)
·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)