数学渣滓不可做の题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. JS005. 拷贝引用数据类型Array使其指向不同堆的解决方案

    一个很常见的语法问题,但专注实现需求时经常会忘记去避免,导致最终问题的出现,再花时间排查.为此专门整理一篇解决方法的博客,也加强一下自己的记忆. TAG: JSON.parse() JSON.stri ...

  2. ajax获取图片

    <img id="contents2_img" alt="" src="images/hope.png" style="wi ...

  3. Input 只能输入数字,数字和字母等的正则表达式

    JS只能输入数字,数字和字母等的正则表达式 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace( ...

  4. Mybatis源码解析5—— 接口代理

    本篇文章,可乐将为大家介绍通过接口代理的方式去执行SQL操作.话不多说,直接上图: 其实无论哪种方式,我们最终是需要找到对应的 SQL 语句,接口代理的方式就是通过 [包名.方法名] 的方式,去找到 ...

  5. 聊一聊开闭原则(OCP).

    目录 简述 最早提出(梅耶开闭原则) 重新定义(多态开闭原则) 深入探讨 OCP的两个特点 对外扩展开放(Open for extension) 对内修改关闭 抽象 关闭修改.对外扩展? 简述 在面向 ...

  6. 谈谈raft fig8 —— 迷惑的提交条件和选举条件

    谈谈raft fig8 -- 迷惑的提交条件和选举条件 前言 这篇文章的思路其实在两个月前就已经成型了,但由于实习太累了,一直没来得及写出来.大概一个月前在群里和群友争论fig8的一些问题时,发现很多 ...

  7. 剑指offer计划20( 搜索与回溯算法中等)---java

    1.1.题目1 剑指 Offer 07. 重建二叉树 1.2.解法 注释解法. 1.3.代码 class Solution { int[] preorder; HashMap<Integer, ...

  8. vscode快速添加引号 批量增加引号(用于批量格式化代码)

    一.在浏览器中将Params复制到pycharm的py文件中 二.选中需要添加引号的部分,Ctrl+H 调出替换工具栏 三.填写正则表达式 (.*?): (.*) '$1':'$2', 右侧注意点击使 ...

  9. 关于php的ini文件相关操作函数浅析

    在小公司,特别是创业型公司,整个服务器的搭建一般也是我们 PHP 开发工程师的职责之一.其中,最主要的一项就是要配置好服务器的 php.ini 文件.一些参数会对服务器的性能产生深远的影响,而且也有些 ...

  10. Java基础系列(4)- 编译型和解释型

    概念 有一个外国人要看一本中文的书,有两种方式可以看,一种是把这本书翻译成英文版,另外一种是请一个中文翻译,想看哪边,翻译就翻译哪边. 针对上述的描述,翻译成英文版本的书籍对应的就是编译型,将代码编译 ...