当前位置: 首页 > news >正文

Bag of mice(概率dp)

https://www.luogu.com.cn/problem/CF148D

思路:

概率dp,设f[a][b]为白鼠为a个,黑鼠为b个时,赢的期望。

f[i][0]=1;

1.当先手取到白鼠时 a/(a+b);

2.当先手未取到白鼠,先手要向赢,后手也不能取到白鼠,跑掉的那一只随意

2.1 b/(a+b)*(b-1)/(a+b-1)*a/(a+b-2);

2.2 b/(a+b)*(b-1)/(a+b-1)*(b-2)/(a+b-2);

注意数据范围;

代码:

#include<bits/stdc++.h>
using namespace std;
#define LL long long 
const int N=1e5+100;
const int MAX=1e9;
double f[1100][1100];
int w,k; 
int main(){
 cin>>w>>k;
 for(int i=1;i<=w;i++) f[i][0]=1;
 for(int  a=1;a<=w;a++)
 for(int b=1;b<=k;b++){
     f[a][b]=1.0*a/(a+b);
     if(a>=1&&b>=2)
     f[a][b]+=1.0*b/(a+b)*(b-1)/(a+b-1)*a/(a+b-2)*f[a-1][b-2];
    if(b>=3)
    f[a][b]+=1.0*b/(a+b)*(b-1)/(a+b-1)*(b-2)/(a+b-2)*f[a][b-3];
 }
 printf("%.9lf\n",f[w][k]);
    return 0;
}
 

http://www.lryc.cn/news/399188.html

相关文章:

  • Python的基础语法——持续更新版
  • 百度智能云将大模型引入网络故障定位的智能运维实践
  • 晚上定时编译android系统
  • 轻薄鼠标的硬核选购攻略,很多人都在“高性价比”鼠标上栽跟头了
  • Python制作签到系统
  • 面试题007-Java-Spring
  • 后端之路——登录校验前言(Cookie\ Session\ JWT令牌)
  • 【蓄势·致远】 同为科技(TOWE)2024年年中会议
  • 通过git将文件push到github 远程仓库
  • 如何判断服务器是否被攻击
  • 泽众一站式性能测试平台P-One监控指标的意义
  • 前端Canvas入门——一些注意事项
  • 移动互联安全扩展要求测评项
  • 【代码随想录】【算法训练营】【第64天】 [卡码117]软件构建 [卡码47]参加科学大会
  • 【python算法学习1】用递归和循环分别写下 fibonacci 斐波拉契数列,比较差异
  • 【邀请函】庭田科技邀您第五届中国国际复合材料科技大会
  • win32:第一个窗口程序-应用程序入口点(part.6)
  • c++ 多边形 xyz 数据 获取 中心点方法,线的中心点取中心值搞定 已解决
  • ext_errno:拓展errno
  • 【CUDA】 Trust基本特性介绍及性能分析
  • 颈肩肌筋膜炎中医治疗
  • Java 通配符 在短信发送之中 通配符参数动态获取解决方案
  • Mybatis-Plus中LambdaQueryWrapper
  • C++ 入门05:类和对象
  • 4G LTE教程
  • C++:哈希表
  • 自己动手写一个滑动验证码组件(后端为Spring Boot项目)
  • keepalive脑裂
  • STM32Cubemx配置生成 Keil AC6支持代码
  • Perl基础入门指南:从零开始掌握Perl编程