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

概率/期望 DP Jon and Orbs

题目链接:Problem - D - Codeforces

题目大意:

需要收集 k (k <= 1000)个球,初始一个球都没有,每次有等同概率得到任意一个球,求要想收集完全整套魔法球(每种至少一个)的概率至少是 \frac{p_i - \epsilon}{2000} 的期望次数。其中 \epsilon < 10^{-7} 。询问若干个 pi ,对于每个 pi 输出对应的答案。

Solution:

设 f_{i,j} 为拿了 i 次之后收集了 j 种球的概率。

f_{0,0} = 1

f_{i + 1,j+1} += \frac{k-j}{k} * f_{i,j}

f_{i + 1,j} += \frac{j}{k} * f_{i,j}

可以直接预处理出 f(1~10000,j) 的所有值,然后二分答案即可。

Code:

#include<cstdio>
#include<cstring>
using namespace std;#define N 1005int k,T,p,ans;
double f[N * 10][N],bar;int min(int x,int y) { return x < y ? x : y ; }int main()
{scanf("%d%d",&k,&T);f[0][0] = 1.00;for (int i = 0;i <= 10000;++ i){for (int j = 0;j <= min(i,k);++ j)f[i + 1][j + 1] += (double)(k - j) / (double)k * f[i][j],f[i + 1][j] += (double)j / (double)k * f[i][j];}while (T --){scanf("%d",&p);bar = (1.00 * p - (1e-8)) / 2000.00;int l = 1;int r = 10000;while (l <= r){int mid = (l + r) >> 1;if(f[mid][k] >= bar) ans = mid,r = mid - 1;else l = mid + 1;}printf("%d\n",ans);}return 0;
}

http://www.dtcms.com/a/317594.html

相关文章:

  • 低代码系统的技术深度:超越“可视化操作”的架构与实现挑战
  • 基于51单片机的温控风扇Protues仿真设计
  • 【FAQ】Script导出SharePoint 目录文件列表并统计大小
  • SQL167 SQL类别高难度试卷得分的截断平均值
  • Tdesign-React 请求接口 415 问题借助 chatmaster 模型处理记录
  • Solidity 编程进阶
  • docker容器临时文件去除,服务器容量空间
  • leetcode643:子数组最大平均数 I(滑动窗口入门之定长滑动窗口)
  • 上下文工程
  • .Net下载共享文件夹中的文件
  • excel名称管理器显示隐藏
  • Java高频方法总结
  • 排序算法归并排序
  • HarmonyOS应用开发环境搭建以及快速入门介绍
  • OpenAI隆重推出开源大模型:GPT-OSS
  • 面试题:基础的sql命令
  • Java NIO
  • 从 LinkedIn 到 Apache:Kafka 的架构设计与应用场景
  • 【25-cv-08899/08985】Lisa Audit 23张版权画作暴雷,Keith律所双案并发冻结跨境店铺!
  • Numpy科学计算与数据分析:Numpy入门之多平台安装与基础环境配置
  • Python 自动化与 Web 应用开发详细教案
  • 前端全栈修炼手册:从 Vue3 到工程化的进阶之路
  • Ethereum: 深入Hardhat Console, 我们的智能合约瑞士军刀
  • 微型导轨:智能家居抽屉的智能化应用
  • Text2SQL 智能问答系统开发-spider验证集(三)
  • 线程互斥与同步
  • C语言控制语句练习题1
  • 汽车以太网通信协议——SOME/IP
  • JTAG-SVF文件完整教程
  • 身份证实名认证接口增强联网平台的便利性与安全性