题解: CF768D Jon and Orbs
题解:CF768D Jon and Orbs
一句话题面:有k种不同的物品,每天等概率任取一种(不一定是新的种类)。q组询问,每组给出一个p,问取完这k件物品的概率不小于\(\frac{p}{2000}\)的最小天数
不用说,肯定是概率DP了
1.定义 :\(f_{i,j}\) 表示前\(i\)天选取了 \(j\) 种物品的概率(\(P.S.\)该定义不是最终的准确定义!请耐心往下读!)
则分两类情况转换:
(1)前\(i-1\)天已经选了\(j\)种物品了,第\(i\)天选了一个旧的,则有
\]
(2)前\(i-1\)天选了\(j-1\)种物品,第\(i\)天选了一个新的,则有
\]
整合一下两种情况,则有
\]
2.初始值:(\(P.S.\)因为初始值的问题我调了2个多小时!!!大家一定要想清楚再下笔!)
一开始我是这么写的:
F(i,1,M) f[i][1]=1;
一看别人的题解发现是这样的:
f[0][0]=1;
当场感觉不妙,再仔细想了想有道理:前\(0\)天选\(0\)种的概率肯定就是\(1\)啊,那前\(i\)天不是至少会选到一种吗,概率为什么不是1???
回到定义去找问题:发现“选了\(j\)种物品”其实不够准确,前\(i\)天选了1种物品,是每一天只需要随便选一种就行了吗?
再三思索后终于发现并不是这样的!物品种类不能多也不能少,必须刚好是\(1\)种!!!,所以将定义说清楚了应该是: 前\(i\)天只选了 \(j\) 种物品的概率
所以得到如下边界:
\]
然后恍然大悟别人写的是对的,令\(f_{0,0}=1\),然后用上面推出的动态转移方程推得出\(f_{1,1}=\frac{1}{k}\)
所以也可以把我丑的一批的初始化改成这样
f[1][1]=1; F(i,2,M) f[1][i]=f[1][i-1]/k;
\(Code:\)
#include<bits/stdc++.h>
#define ld long double
#define ri register int
#define F(i,l,r) for(ri i=l;i<=r;++i)
using namespace std;
const int N=1005,M=1e4;
ld tmp,f[M+5][N],p;//f[i][j]:前i天只取了j种物品的概率
int k,q,w;
int main(){;
scanf("%d%d",&k,&q);
f[0][0]=1;//f[1][1]=1; F(i,2,M) f[1][i]=f[1][i-1]/k;
F(j,1,k) F(i,1,M) f[i][j]=(f[i-1][j]*(ld)j/k+f[i-1][j-1]*(ld)(k-j+1)/k);
while(q--){
scanf("%Lf",&p); p*=0.0005; w=1;//注意p的类型不能是int,因为要乘0.0005
while(f[w][k]<p) ++w;
//暴力搜就可以没必要二分查,总时间复杂度不超过M*Q,才1e7(注:M的范围是算出来的,当k=1000,p=1000时,w最大也才7000多一点点)
printf("%d\n",w);
}
return 0;
}
3.总结:方程并不难推,关键是想清楚初始化!!!
END~
题解: CF768D Jon and Orbs的更多相关文章
- Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) D. Jon and Orbs
地址:http://codeforces.com/contest/768/problem/D 题目: D. Jon and Orbs time limit per test 2 seconds mem ...
- 【codeforces 768D】Jon and Orbs
[题目链接]:http://codeforces.com/contest/768/problem/D [题意] 你有一个水晶; 它每天都会产生一个球??(球有k种) 然后每种球产生的可能性是相同的-& ...
- codeforces 768 D. Jon and Orbs(概率dp)
题目链接:http://codeforces.com/contest/768/problem/D 题意:一共有k种球,要得到k种不同的球至少一个,q个提问每次提问给出一个数pi,问概率大小大于等于pi ...
- codeforces 768D Jon and Orbs
题目链接:http://codeforces.com/problemset/problem/768/D 令$f[i][j]$表示当前产生过了$i$个球,产生过了$j$个不同的球的概率. ${Ans_i ...
- 【概率dp】Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) D. Jon and Orbs
直接暴力dp就行……f(i,j)表示前i天集齐j种类的可能性.不超过10000天就能满足要求. #include<cstdio> using namespace std; #define ...
- Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined)
C题卡了好久,A掉C题之后看到自己已经排在好后面说实话有点绝望,最后又过了两题,总算稳住了. AC:ABCDE Rank:191 Rating:2156+37->2193 A.Oath of t ...
- Codeforces_768_D_(概率dp)
D. Jon and Orbs time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- 动态规划之经典数学期望和概率DP
起因:在一场训练赛上.有这么一题没做出来. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6829 题目大意:有三个人,他们分别有\(X,Y,Z\)块钱 ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
随机推荐
- 关于mysql配置文件中jdbc url 的记录
版本不同 url不同 大同小异 基本就是不同参数配置的区别 maven 仓库地址 https://mvnrepository.com/artifact/mysql/mysql-connector-ja ...
- MySQL 优化慢查询
查询以SELECT 语句的形式执行数据库中的所有查找操作.调整这些语句是重中之重,无论是实现动态网页的亚秒响应时间,还是缩短数小时生成大量夜间报告的时间. 此外SELECT语句,进行查询调谐技术也适用 ...
- mysql8.0 主从架构模式【0到1架构系列】
前提条件 准备3,4,5台虚拟机 祼装mysql8.0 主从架构 常见两种模式"一主多从"和"级联复制"两种,基本都很简单,都是依赖binlog日志文件进行同步 ...
- 【Mac + Python + Selenium】之获取验证码图片code并进行登录
自己新总结了一篇文章,对代码进行了优化,另外附加了静态图片提取文字方法,两篇文章可以结合着看:<[Python]Selenium自动化测试之动态识别验证码图片方法(附静态图片文字获取)> ...
- 微信小程序开发工具怎样支持xdebug调试
在做PHP项目时候用xdebug进行调试,如果使用浏览器我一般直接 Xdebug Helper 浏览器插件.配合PHPSTORM进行调试. 微信小程序并不支持cookies,因此需要另想办法,可以在微 ...
- ansible部署jdk source /etc/profile 不起作用?
问题: ansible调用playbook远程mvn执行打包时发现执行出错,找不到JAVA_HOME.我们的exporter JAVA_HOME=/usr/java/jdk1.8.0写在/etc/pr ...
- 爬虫案例2-爬取视频的三种方式之一:requests篇(1)
@ 目录 前言 爬虫步骤 确定网址,发送请求 获取响应数据 对响应数据进行解析 保存数据 完整源码 共勉 博客 前言 本文写了一个爬取视频的案例,使用requests库爬取了好看视频的视频,并进行保存 ...
- 小tips:docker 配置国内镜像地址
在配置文件daemon.json中添加国内镜像,让其下载加速. vi /etc/docker/daemon.json 如下国内镜像: { "registry-mirrors": [ ...
- 变“金点子”为“好应用”,合合信息智能文档处理技术助力大学生探索AI创新边界
谈"糖"色变.追求养生.低卡生活--这些热门词汇频频在社交媒体上掀起讨论热潮.有这样一批年轻人不但捕捉到了这些词汇背后真实的用户需求,并且正在利用AI技术寻找解决之道. 近日,&q ...
- Java SE 23 新增特性
Java SE 23 新增特性 作者:Grey 原文地址: 博客园:Java SE 23 新增特性 CSDN:Java SE 23 新增特性 源码 源仓库: Github:java_new_featu ...