博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva 12730(期望经典)
阅读量:6507 次
发布时间:2019-06-24

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

选自: http://blog.csdn.net/myhelperisme/article/details/39724515

用dp(n)表示有n个位置时的期望值,那么,对于一个刚进来的人来说,他有 n 个选择,当他选择第 i 个位置时,此时的期望值是 [dp(i-k-1) + dp(n-i-k)  + 1] / n, 推导一下,就得 (2 * sum(n-k-1) ) / i + 1, (sum(i)是指 有1~n个位置时的dp总和。

#include 
#include
#include
#include
#include
using namespace std;#define N 1001000double f[N];int main(){ int n,k; int T; int tt=1; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&k); for(int i=1;i<=k+1;i++) f[i]=1; double sum=f[1]; for(int i=k+2;i<=n;i++) { f[i]=1+sum*2.0/(double)i; sum+=f[i-k]; } printf("Case #%d: ",tt++); printf("%lf\n",f[n]); } return 0;}

 

你可能感兴趣的文章
flask框架
查看>>
《疯狂Java讲义》学习笔记(十)异常处理
查看>>
Lua(Codea) 中 table.insert 越界错误原因分析
查看>>
ELK 5.x日志分析 (二) Elasticserach 5.2 安装
查看>>
一次奇怪的AP注册异常问题处理
查看>>
TableStore: 海量结构化数据分层存储方案
查看>>
Unity 4.x游戏开发技巧集锦(内部资料)
查看>>
自适应网页设计
查看>>
获取BT节点信息bittorrent-discovery
查看>>
linux下SVN不允许空白日志提交
查看>>
第2周第1课
查看>>
山寨c 标准库中的getline 函数
查看>>
shell时间
查看>>
pfSense book之2.4安装指南
查看>>
org.springframework.data.redis 一次连接获取特定key所有k-v(pipeline)
查看>>
[译稿]同步复制提议 2010-09
查看>>
windows 自动化目录大纲(各企业架构不一样,按需选择)
查看>>
我的友情链接
查看>>
【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理
查看>>
我的友情链接
查看>>