UVA 12730 Skyrk's Bar --期望问题
题意:有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 --期望问题的更多相关文章
- uva 12730(期望经典)
选自: http://blog.csdn.net/myhelperisme/article/details/39724515 用dp(n)表示有n个位置时的期望值,那么,对于一个刚进来的人来说,他有 ...
- UVa 1639 - Candy(数学期望 + 精度处理)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVA - 12230 Crossing Rivers (期望)
Description You live in a village but work in another village. You decided to follow the straight pa ...
- UVA.11427.Expect the Expected(期望)
题目链接 \(Description\) https://blog.csdn.net/Yukizzz/article/details/52084528 \(Solution\) 首先每一天之间是独立的 ...
- UVa 1639 Candy (数学期望+组合数学+高精度存储)
题意:有两个盒子各有n个糖,每次随机选一个(概率分别为p,1-p),然后吃掉,直到有一次,你打开盒子发现,没糖了! 输入n,p,求另一个盒子里糖的个数的数学期望. 析:先不说这个题多坑,首先要用lon ...
- UVa 10288 - Coupons(数学期望 + 递推)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- Uva - 12230 Crossing Rivers (数学期望)
你住在村庄A,每天需要过很多条河到另一个村庄B上班,B在A的右边,所有的河都在A,B之间,幸运的是每条船上都有自由移动的自动船, 因此只要到达河左岸然后等船过来,在右岸下船,上船之后船的速度不变.现在 ...
- UVA - 12230 Crossing Rivers 概率期望
You live in a village but work in another village. You decided to follow the straight path between y ...
- UVA&&POJ离散概率与数学期望入门练习[4]
POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...
随机推荐
- C语言动态调用库(转)
转自:http://cloverprince.iteye.com/blog/481309 现有一个主程序用C语言写成.现在要允许第三方开发人员编写扩展的模块,约定第三方开发的模块必须提供一系列已知名称 ...
- C# WM_NCMOUSELEAVE 消息触发
public static extern bool TrackMouseEvent([In, Out] TRACKMOUSEEVENT lpEventTrack); [DllImport(" ...
- android studio :com.android.support:appcompat-v7:21.+ 报错
android studio :com.android.support:appcompat-v7:21.+ 报错: 在project——>app——>build.gradle修改: app ...
- webpack常用的插件安装命令
webpack常用的插件安装命令:1:npm install html-webpack-plugin --save-dev //自动快速的帮我们生成HTML.2:npm install css-loa ...
- Study Tips
1. 100% width divs not spanning entire width of the browser in webkit. Even Body can not span the en ...
- xampp 访问出现New XAMPP security concept 解决办法
最近通过手机访问本地服务器时出现以下问题: Access forbidden! New XAMPP security concept: Access to the requested director ...
- Microsoft Dynamics CRM 2011/2013 JS操作集锦
1.Xrm.Page.context用户ID:getUserId()用户角色:getUserRoles()用户语言:getUserLcid()组织名称:getOrgUniqueName()组织语言:g ...
- android 浏览器开发实例
android app需要通过手机显示网页信息还是比较常用的,比如我最近业余开发的 抢商铺游戏,需要对游戏规则做说明,规则会比较多,而且要经常变动,就想到用网页来展示,更新起来方便,不像应用,一旦发布 ...
- Android NDK
1.Android之NDK开发 http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html
- iOS之Cookie
iOS之Cookie使用 简介 概念:Cookie中文名称叫做"小型文本文件",指某些网站为了辨别用户身份而存储在用户本地终端上的数据(通常经过加 密). Web服务器可以用过Se ...