【题目链接】:http://codeforces.com/contest/768/problem/D

【题意】



你有一个水晶;

它每天都会产生一个球??(球有k种)

然后每种球产生的可能性是相同的->1/k

然后给你q个询问;

每个询问pi;

问你最少需要多少天;

每种球至少有一个的概率大于等于pi/2000;

这里pi<=1000

【题解】



动态规划;

考虑按天划分状态;

设f[i][j]表示第i天一共有j种球的概率;

则第i天考虑两种情况

1.拿到了一个新的球,从原来的j-1种球变成了j种球->概率是(k-j+1)/k

2.拿到了原先就有的球,原来的j种球,球类总数不变,天数增加了1->概率是j/k

则有动态转移方程

f[i][j] = f[i-1][j-1]*(k-j+1)/k+f[i-1][j]*j/k;

直到f[i][k]>1/2就好了;

因为pi最大为1000,而分母为2000;

数组第一维开多大??

1000*10

为什么??



是因为循环次数吧.

或者你再开大一点也没关系:->中间break掉就好

只要不超时就好;

可以预处理出1..1000的答案;

扫一遍就可以了



【Number Of WA】



1



【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define ps push_back
#define fi first
#define se second
#define rei(x) scanf("%d",&x)
#define rel(x) scanf("%lld",&x)
#define ref(x) scanf("%lf",&x) typedef pair<int, int> pii;
typedef pair<LL, LL> pll; const int dx[9] = { 0,1,-1,0,0,-1,-1,1,1 };
const int dy[9] = { 0,0,0,-1,1,-1,1,-1,1 };
const double pi = acos(-1.0);
const int N = 1e3+100; int k, q,ans[N];
double f[N * 10][N]; int main()
{
//freopen("F:\\rush.txt", "r", stdin);
rei(k), rei(q);
f[0][0] = 1;
rep1(i, 1, 10000)
{
rep1(j, 1, k)
f[i][j] = f[i - 1][j - 1] * ((k - j + 1)*1.0 / (1.0*k)) + f[i - 1][j] * (j*1.0 / (1.0*k));
if (f[i][k] > 0.5) break;
}
int now = 1;
rep1(i, 1, 1000)
{
while (f[now][k] * 2000 < i)
now++;
ans[i] = now;
}
while (q--)
{
int x;
rei(x);
cout << ans[x] << endl;
}
//printf("\n%.2lf sec \n", (double)clock() / CLOCKS_PER_SEC);
return 0;
}

最新文章

  1. 99%的人都理解错了HTTP中GET与POST的区别
  2. supervisor(一)基础篇
  3. mysql中OPTIMIZE TABLE的作用
  4. July 22nd, Week 30th Friday, 2016
  5. cvWaitKey
  6. Android WebView Error – Uncaught TypeError: Cannot call method ‘getItem’ of null at
  7. PHP与MySQL交互
  8. hdu 4836 The Query on the Tree(线段树or树状数组)
  9. MINIGUI 编译 helloworld
  10. 苹果4S
  11. jsp中怎么调用java类中的方法
  12. 项目总结二:模块管理之requireJS
  13. vue之render基本书写方法
  14. 绕最新版安全狗-附上sqlmap的tamper
  15. C#+EntityFramework编程方式详细之Database First
  16. 解决 phpstorm 运行卡,自动关闭等问题
  17. HIHOcoder1465 后缀自动机五&#183;重复旋律8
  18. Java 迭代器 工具类
  19. obstacle
  20. asp.net core 登录身份认证(Cookie)

热门文章

  1. JAVA Swing 组件演示***
  2. 57.部门职位管理 ExtJs 展示
  3. jsp简单学习总结
  4. [Swift通天遁地]四、网络和线程-(14)创建一个Socket服务端
  5. $P5240 Derivation$
  6. JavaScript--编程题
  7. JavaScript--编程挑战
  8. php 获取客户端的真实ip地址 通过第三方网站
  9. 使用HBuilder新建项目
  10. html 基础演示代码