BZOJ2720 [Violet 5] 列队春游 题解
Problem
对于一个数列 \(S\),\(S_0= \infty\),设对于 \(S_i\),\(S_{a_i}\) 是 \(S_i\) 之前第一个大于等于 \(S_i\) 的数。给定 \(S\) 中的元素,求 \(\sum_{i=1}^{n}(i-a_i)\) 的期望。
Solution
我们考虑对于每一种身高的学生,分别统计期望。显然,对于身高为 \(h\) 的学生,只有身高为 \(h-1\) 及以下的学生可以产生贡献,且每个人产生的贡献都是 \(1\)。
设对于当前的 \(h\),共有 \(s\) 个可以产生贡献的学生,剩下便有 \(n-s\) 个学生(包括当前索要贡献的学生)。这些学生之间共 \(n-s+1\) 个空。而一个学生想要产生贡献,就必须恰好站在索要贡献的学生之前的空里,贡献为 \(\frac{1}{n-s+1}\) 。若身高为 \(h\) 的学生共有 \(b\) 个,则此类学生对所有身高为 \(h\) 的学生所产生的贡献为 \(\frac{s \times b}{n-s+1}\)。
另外,每个人不论如何都有 \(1\) 的贡献,应当加上。
实现时,可以记录每种身高学生的个数并依次累加贡献,时间复杂度为基于身高值域的线性复杂度。
Code
#include<bits/stdc++.h>
using namespace std;
int n,a,b[2000],sum,maxn;
double ans;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%d",&a);
++b[a];
maxn=max(maxn,a);
}
for(int i=1;i<=maxn;++i){
ans+=1.0*sum*b[i]/(n-sum+1)+b[i];
sum+=b[i];
}
printf("%.2lf",ans);
return 0;
}
BZOJ2720 [Violet 5] 列队春游 题解的更多相关文章
- BZOJ2720: [Violet 5]列队春游
2720: [Violet 5]列队春游 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 173 Solved: 125[Submit][Status] ...
- bzoj2720: [Violet 5]列队春游(概率期望+组合数学)
Description Input Output Sample Input Sample Output HINT 数学题都这么骚的么……怎么推出来的啊……我是真的想不出来…… 首先,要算总的视 ...
- BZOJ 2720: [Violet 5]列队春游
2720: [Violet 5]列队春游 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 189 Solved: 133[Submit][Status] ...
- BZOJ 2720 [Violet 5]列队春游 ——期望DP
很喵的一道题(我可不是因为看了YOUSIKI的题解才变成这样的) $ans=\sum_{x<=n}\sum_{i<=n} iP(L=i)$ 其中P(x)表示视线为x的概率. 所以只需要求出 ...
- BZOJ2716:[Violet 3]天使玩偶——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2716 样例输入 2 31 12 32 1 21 3 32 4 2 样例输出 1 2 ———————— ...
- 【BZOJ2070】列队春游———[组合数学+概率DP]
数学渣滓不可做の题OTZ Description (单身人士不可做 Input | Output 3 ...
- bzoj violet系列 (2708~2725)
cbh大爷说:写博客不能弃坑. orz cbh 那我就来更新博客了. violet这个系列的题好神啊……出题人好劲啊…… ……怎么最近都在理性愉悦啊…… 另外bzoj400题纪念~ 2708: [Vi ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- LibreOJ 题解汇总
目录 #1. A + B Problem #2. Hello, World! #3. Copycat #4. Quine #7. Input Test #100. 矩阵乘法 #101. 最大流 #10 ...
- 期望与概率 dp
期望与概率 dp \(\text{By DaiRuiChen007}\) I. [洛谷4316] - 绿豆蛙的归宿 \(\text{Link}\) 思路分析 DAG 上做期望 dp,可以爆搜,也可以拓 ...
随机推荐
- FireDAC开发DataSnap应用系统【1】-快储功能
FireDAC是吧DataSnap服务器当成API来调用,而dbExpress使用IAppServer接口. 关键点: 1.客户端调用API要回传数据,那么FireDAC把数据已Stream的格式传递 ...
- 使用克魔助手查看iOS 应用程序使用历史记录和耗能历史记录
使用克魔助手查看iOS 应用程序使用历史记录和耗能历史记录 功能概述 克魔助手无需越狱即可访问iOS上各个应用程序的历史记录,包括: 最近几个月的app的详细启动时间记录,结束时间,app使用的硬件组 ...
- vue 前端选择弹窗取值完整实例[经典]
<!-- 班次信息 --> <el-row> <el-col :span="24"> <el-form-item label=" ...
- 使用XML的方式编写:@Aspect运用
例子. 接口 public interface Calculator { // 加 public int add(int i, int j); // 减 public int sub(int i, i ...
- apisix~ApisixPluginConfig的使用
1. ApisixPluginConfig 的作用 插件配置复用:将插件配置定义为独立的资源,供多个路由或服务引用. 解耦插件与路由:修改插件配置时,只需更新 ApisixPluginConfig,无 ...
- 创建第一个属于自己的JavaWeb小程序吧
需要使用的 技术 工具: idea 2022 开发工具 MySql 5.6 数据库工具 Apache Tomcat 8.5.85 web应用部署工具 主要功能有: 用户登录 用户注册 展示列表 ...
- MySQL 的 Doublewrite Buffer 是什么?它有什么作用?
MySQL 的 Doublewrite Buffer 是什么?它有什么作用? Doublewrite Buffer 是 InnoDB 存储引擎的一种机制,旨在提高数据的安全性,防止在写入磁盘时发生崩溃 ...
- Web客户端开发
Web开发工具 从高层次来看,可以将客户端工具放入以下三大类需要解决的问题中: 安全网络 - 在代码开发期间有用的工具. 转换 - 以某种方式转换代码的工具,例如将一种中间语言转换为浏览器可以理解的 ...
- Java编程--委派设计模式
目录 委派设计模式 委派 (Delegation) 委派设计模式 委派 (Delegation) 委派(Delegation)是一种设计模式,通常用于实现代码的解耦和复用.简单来说,委派是指一个对象将 ...
- vue中 <el-table-column>回显转成百分比【数字转为百分比】
一.方案1[不保留小数] 这里直接乘以100然后加入百分号既可 <el-table-column prop="refundRate15" label="15天退款率 ...