博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 768D:Jon and Orbs
阅读量:6828 次
发布时间:2019-06-26

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

Codeforces 768D:Jon and Orbs

题目链接:

题目大意:共有k种蛋,每天随机孵化其中一个,每次query每种蛋都至少有一个的概率>pi/2000需要多少天,一共询问q次。

概率dp

定义状态:dp[第i天][已孵化j种蛋]为改装状态下的概率;

状态转移方程:dp[i][j]=[1-(j-1)/k]*dp[i-1][j-1]+(j/k)*dp[i-1][j];

/*需要注意的是dp[i][0]=0,其中i>1*/

我们可以离线处理所有询问(按pi升序排列),再恢复原排列输出,已达到询问总复杂度O(nlgn),

观察到1≤pi≤1000,故亦可以保存对应pi=1 to 1000的ans,达到询问总复杂度O(n).

代码如下:

1 #include 
2 #include
3 #include
4 #define N 1005 5 using namespace std; 6 int n,k,q,ans[N],p; 7 double dp[10*N][N]; 8 int main(void){ 9 scanf("%d%d",&n,&q);10 dp[0][0]=1;11 for(int i=1;i<10*N;++i){12 dp[i][0]=0;13 for(int j=1;j<=n;++j)14 dp[i][j]=(dp[i-1][j-1]*(n-j+1)+dp[i-1][j]*j)/n;15 }16 for(int i=1;i<=1000;++i){17 while(dp[k][n]*2000

 

转载于:https://www.cnblogs.com/barrier/p/6426525.html

你可能感兴趣的文章
MicroPython开发之物联网快速开发板
查看>>
Mysql分布式部署高可用集群方案
查看>>
PHP中常用的输出语句比较?
查看>>
windows下oracleSQLDevelpment连接ORA-12560解决办法
查看>>
android&nbsp;setBackgroundColor
查看>>
UVa11181 条件概率
查看>>
第一个Polymer应用 - (3)使用数据绑定
查看>>
<Linux> xm 命令
查看>>
linux 常用命令
查看>>
ecna 2017 J Workout for a Dumbbell (模拟)
查看>>
用Quick3.3开发微信打飞机 (二) -------------------- 子弹和敌人的配置和创建
查看>>
Tui-x 自适应屏幕 (转) ----- 6
查看>>
[转载] C#中的委托和事件(续)
查看>>
解题思路
查看>>
AngularJS - Apply方法监听model变化
查看>>
linux_密钥
查看>>
silverlight 添加配置项
查看>>
oracle数据库迁移相关
查看>>
Linux之 VIM 编辑器
查看>>
实用网址集合
查看>>