数学渣滓不可做の题OTZ

Description


(单身人士不可做

Input                     |            Output

3                                           |            4.33

1 2 3                                     |

Solutoin


1.O(n3)暴力算法:

无脑暴力可以枚举身高+位置+长度算期望再加和,O(n3)的复杂度,目测会T (所以根本没敢尝试

2.O(n2)优化算法:

然后会发现不同位置相同长度会产生很多重复计算,所以改为可以改为不枚举位置,直接计算每一长度的概率。

令s是比某小朋友身高矮的人数,那么对于长度l,该小朋友的概率为s/(n-1)*(s-1)/(n-2)...*(s-L+1)/(n-L)。 O(n2)解决。

3.O(n)数学算法:

最终答案为小朋友期望视野的总和,根据期望的线性性,答案可化为所有可能视野的期望值。即:

ans=∑i*p(l=i)      (i>=1且i<=n)可巧妙转化为

ans=∑p(l>=i)      (i>=1且i<=n)

对于p(l>=i),令k为可能挡住当前小朋友的人数,考虑当前小朋友身前必须至少有i-1个比他矮的小朋友,因此他可站的位置有n-i+1个;k位挡视野的小朋友不能站在这i-1个位置,因此只能在剩下n-i个位置中选择。然后考虑小朋友自己和挡视野的人在n个位置中排列的合法情况,相除,就是p(l>=i)。

p(l>=i)=(n-i+1)*A(k,n-i)/A(k+1,n).

然后进行一通猛如虎的操作,最后可得一个神奇的O(1)式子。

p(l>=i)=(n+1)/(k+2).

具体推导过程见不认识的dalao的博客 传送门


O(n)的代码:

#include<bits/stdc++.h>
using namespace std;
int n,h[1001],k[1001];
double ans;
inline int read()
{
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
void write(int x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x>9)
write(x/10);
putchar(x%10+'0');
}
int main()
{
n=read();
memset(k,-1,sizeof(k));
for(int i=1;i<=n;i++)
{
int x=read();
h[x]=h[x]+1;
}
for(int i=1;i<=1000;i++)
for(int j=1;j<=i;j++)
k[j]+=h[i];
for(int i=1;i<=1000;i++)
if(h[i])
ans+=(double)h[i]*(n+1)/(k[i]+2);
printf("%.2lf",ans);
return 0;
}

【BZOJ2070】列队春游———[组合数学+概率DP]的更多相关文章

  1. 【bzoj5004】开锁魔法II 组合数学+概率dp

    题目描述 有 $n$ 个箱子,每个箱子里有且仅有一把钥匙,每个箱子有且仅有一把钥匙可以将其打开.现在随机打开 $m$ 个箱子,求能够将所有箱子打开的概率. 题解 组合数学+概率dp 题目约定了每个点的 ...

  2. bzoj2720: [Violet 5]列队春游(概率期望+组合数学)

    Description Input Output Sample Input   Sample Output   HINT 数学题都这么骚的么……怎么推出来的啊……我是真的想不出来…… 首先,要算总的视 ...

  3. 【整理】简单的数学期望和概率DP

    数学期望 P=Σ每一种状态*对应的概率. 因为不可能枚举完所有的状态,有时也不可能枚举完,比如抛硬币,有可能一直是正面,etc.在没有接触数学期望时看到数学期望的题可能会觉得很阔怕(因为我高中就是这么 ...

  4. CF_229E_Gift_概率DP+组合数学

    CF_229E_Gift_概率DP+组合数学 题目描述: 很久很久以前,一位老人和他的妻子住在蔚蓝的海边.有一天,这位老人前去捕鱼,他捉到了一条活着的金鱼.鱼说:“噢,老渔人!我祈求你放我回到海里,这 ...

  5. Codeforces 28C [概率DP]

    /* 大连热身D题 题意: 有n个人,m个浴室每个浴室有ai个喷头,每个人等概率得选择一个浴室. 每个浴室的人都在喷头前边排队,而且每个浴室内保证大家都尽可能均匀得在喷头后边排队. 求所有浴室中最长队 ...

  6. HDU 4405 Aeroplane chess (概率DP)

    题意:你从0开始,要跳到 n 这个位置,如果当前位置是一个飞行点,那么可以跳过去,要不然就只能掷骰子,问你要掷的次数数学期望,到达或者超过n. 析:概率DP,dp[i] 表示从 i  这个位置到达 n ...

  7. POJ 2096 Collecting Bugs (概率DP)

    题意:给定 n 类bug,和 s 个子系统,每天可以找出一个bug,求找出 n 类型的bug,并且 s 个都至少有一个的期望是多少. 析:应该是一个很简单的概率DP,dp[i][j] 表示已经从 j ...

  8. POJ 2151 Check the difficulty of problems (概率DP)

    题意:ACM比赛中,共M道题,T个队,pij表示第i队解出第j题的概率 ,求每队至少解出一题且冠军队至少解出N道题的概率. 析:概率DP,dp[i][j][k] 表示第 i 个队伍,前 j 个题,解出 ...

  9. 概率DP light oj 1030

    t组数据 n块黄金 到这里就捡起来 出发点1 到n结束  点+位置>n 重掷一次 dp[i] 代表到这里的概率 dp[i]=(dp[i-1]+dp[i-2]... )/6  如果满6个的话 否则 ...

随机推荐

  1. 别再自建仓库了,云效Maven仓库不限容量免费用

    别再自建仓库了,云效Maven仓库不限容量免费用云效制品仓库 Packages提供maven私有仓库.npm私有仓库.通用制品仓库等企业级私有制品仓库,用于maven.npm等软件包和依赖管理.不限容 ...

  2. 学习PHP弱引用的知识

    之前的文章中,我们已经学习过引用和引用传值相关的知识.我们知道,PHP 中没有纯引用(指针),不管是对象,还是用引用符号 & 赋值的变量,都是对一个符号表的引用.而今天,我们要学习的是另一种引 ...

  3. Nginx系列(1)- Nginx简介

    公司产品出现瓶颈 公司项目刚上线的时候,并发量小,用户使用少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户 但是慢慢的,使用平台的用户越来越多,并发量慢慢增大了 ...

  4. Layui的落幕,是否预示一个时代的结束?

    1.今天,看到LayUi(读音类UI)官方说,LayUI官网将关闭,多少有些伤感. 或许,有人会所,通知里也说了,"新版下载.文档和示例等仍会在Github 和 Gitee" 但, ...

  5. 关于web桌面应用的集成解决方案

    背景 毫无疑问,面对一个新的项目需求,我们首先想到的就是web. 确实,web太方便了,基于浏览器对OS的适配,我们可以很快速的实现某个需求的页面UI,而无需考虑OS的兼容差异. 再经过jq.boot ...

  6. 鸿蒙内核源码分析(中断切换篇) | 系统因中断活力四射 | 百篇博客分析OpenHarmony源码 | v42.02

    百篇博客系列篇.本篇为: v42.xx 鸿蒙内核源码分析(中断切换篇) | 系统因中断活力四射 | 51.c.h .o 硬件架构相关篇为: v22.xx 鸿蒙内核源码分析(汇编基础篇) | CPU在哪 ...

  7. NOI.AC#2139-选择【斜率优化dp,树状数组】

    正题 题目链接:http://noi.ac/problem/2139 题目大意 给出\(n\)个数字的序列\(a_i\).然后选出一个不降子序列最大化子序列的\(a_i\)和减去没有任何一个数被选中的 ...

  8. 深入浅出WPF-10.Resource(资源)

    资源 对象级资源:每个WPF的界面元素都有一个名为Resources的属性,这个属性继承自FrameworkElement类,其类型为ResourceDictionary,采用键值对的形式存储资源,当 ...

  9. 突破GD渲染的图片马

    <?php /* The algorithm of injecting the payload into the JPG image, which will keep unchanged aft ...

  10. NOIP 模拟四 考试总结

    #T1随 又是liu_................... 数列n,m个操作,每次随机取a[i],x=x*a[i]%k; 问题是求x期望%mod; 首先考虑到期望转移过程中存在%k,一般套路线性期望 ...