题意:有n个地方,现在要站人进去,而每两个人之间至少要隔k个空地,问这n个地方能站的人数的期望是多少。

分析:考虑dp[i]表示 i 个地方能站的期望数,从左往右推,

如果i-k-1<1,那么最多只能站一个,dp[i] = 1,

如果 i-k-1>=1的话,如果第一个人站在第1个位置,那么右边会空出i-k-1个位置,如果站在2位置,那么右边会空出i-k-2个位置......且站在每个位置的概率为1/i,所以: dp[i]=1+(dp[1]+dp[2]+...+dp[i-k-1])/i,  又因为从右边开始站也一样,所以等式右边后面部分要乘以2,

即:dp[i] = 1+(dp[1]+dp[2]+...+dp[i-k-1])*2/i,

因为由左往右递推,所以算dp[i]的时候,dp[i-k-1]以下都是已知的,用sum[i]记录SUM(dp[j]) (1<=j<=i)。

复杂度:O(n)

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
#define N 1000007 double dp[N],sum[N]; int main()
{
int t,cs = ,i,n,k;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&k);
memset(dp,,sizeof(dp));
memset(sum,,sizeof(sum));
for(i=;i<=n;i++)
{
if(i-k- >= )
dp[i] = +sum[i-k-]*2.0/i;
else
dp[i] = ;
sum[i] = sum[i-] + dp[i];
}
printf("Case #%d: %.4lf\n",cs++,dp[n]);
}
return ;
}

UVA 12730 Skyrk's Bar --期望问题的更多相关文章

  1. uva 12730(期望经典)

    选自: http://blog.csdn.net/myhelperisme/article/details/39724515 用dp(n)表示有n个位置时的期望值,那么,对于一个刚进来的人来说,他有 ...

  2. UVa 1639 - Candy(数学期望 + 精度处理)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  3. UVA - 12230 Crossing Rivers (期望)

    Description You live in a village but work in another village. You decided to follow the straight pa ...

  4. UVA.11427.Expect the Expected(期望)

    题目链接 \(Description\) https://blog.csdn.net/Yukizzz/article/details/52084528 \(Solution\) 首先每一天之间是独立的 ...

  5. UVa 1639 Candy (数学期望+组合数学+高精度存储)

    题意:有两个盒子各有n个糖,每次随机选一个(概率分别为p,1-p),然后吃掉,直到有一次,你打开盒子发现,没糖了! 输入n,p,求另一个盒子里糖的个数的数学期望. 析:先不说这个题多坑,首先要用lon ...

  6. UVa 10288 - Coupons(数学期望 + 递推)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  7. Uva - 12230 Crossing Rivers (数学期望)

    你住在村庄A,每天需要过很多条河到另一个村庄B上班,B在A的右边,所有的河都在A,B之间,幸运的是每条船上都有自由移动的自动船, 因此只要到达河左岸然后等船过来,在右岸下船,上船之后船的速度不变.现在 ...

  8. UVA - 12230 Crossing Rivers 概率期望

    You live in a village but work in another village. You decided to follow the straight path between y ...

  9. UVA&&POJ离散概率与数学期望入门练习[4]

    POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...

随机推荐

  1. C语言动态调用库(转)

    转自:http://cloverprince.iteye.com/blog/481309 现有一个主程序用C语言写成.现在要允许第三方开发人员编写扩展的模块,约定第三方开发的模块必须提供一系列已知名称 ...

  2. C# WM_NCMOUSELEAVE 消息触发

    public static extern bool TrackMouseEvent([In, Out] TRACKMOUSEEVENT lpEventTrack); [DllImport(" ...

  3. android studio :com.android.support:appcompat-v7:21.+ 报错

    android studio :com.android.support:appcompat-v7:21.+ 报错: 在project——>app——>build.gradle修改: app ...

  4. webpack常用的插件安装命令

    webpack常用的插件安装命令:1:npm install html-webpack-plugin --save-dev //自动快速的帮我们生成HTML.2:npm install css-loa ...

  5. Study Tips

    1. 100% width divs not spanning entire width of the browser in webkit. Even Body can not span the en ...

  6. xampp 访问出现New XAMPP security concept 解决办法

    最近通过手机访问本地服务器时出现以下问题: Access forbidden! New XAMPP security concept: Access to the requested director ...

  7. Microsoft Dynamics CRM 2011/2013 JS操作集锦

    1.Xrm.Page.context用户ID:getUserId()用户角色:getUserRoles()用户语言:getUserLcid()组织名称:getOrgUniqueName()组织语言:g ...

  8. android 浏览器开发实例

    android app需要通过手机显示网页信息还是比较常用的,比如我最近业余开发的 抢商铺游戏,需要对游戏规则做说明,规则会比较多,而且要经常变动,就想到用网页来展示,更新起来方便,不像应用,一旦发布 ...

  9. Android NDK

    1.Android之NDK开发 http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html

  10. iOS之Cookie

    iOS之Cookie使用 简介 概念:Cookie中文名称叫做"小型文本文件",指某些网站为了辨别用户身份而存储在用户本地终端上的数据(通常经过加 密). Web服务器可以用过Se ...