首页 > 其他分享 >## BZOJ2720 [Violet 5] 列队春游 题解

## BZOJ2720 [Violet 5] 列队春游 题解

时间:2024-07-01 14:20:19浏览次数:17  
标签:BZOJ2720 ## 题解 贡献 int 学生 身高

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,##,题解,贡献,int,学生,身高
From: https://www.cnblogs.com/blog21012004/p/18277920

相关文章

  • QT 使用Q_PLUGIN_METADATA实现自定义插件
    1.创建一个继承自QObject的类,并在类的实现文件中使用Q_PLUGIN_METADATA宏定义插件的元数据信息。这个宏通常包含插件的元数据,如插件的标识符、版本号等。2.在插件项目的.pro文件中添加QT += core gui widgets以确保能够使用Qt的相关功能。3.在主应用程序中使用QPluginLoade......
  • 升级到 MySQL 8.4,MySQL 启动报错:io_setup() failed with EAGAIN
    问题最近碰到一个case,一台主机上,部署了多个实例。之前使用的是MySQL8.0,启动时没有任何问题。但升级到MySQL8.4后,部分实例在启动时出现了以下错误。[Warning] [MY-012582] [InnoDB] io_setup() failed with EAGAIN. Will make 5 attempts before giving up.[W......
  • 前后端分离项目案例
    docker部署ruoyi介绍:基于SpringBoot、SpringSecurity、Jwt、Vue的前后端分离的后台管理系统前端:Vue后端:JavaSpringBoot(jar包)项目代码地址:https://gitee.com/y_project/RuoYi-Vue部署项目:Ruo-Yi环境说明(需要提前安装docker)主机IP说明frontend0110.0.0.140前端......
  • Azure Function App With Python 3.11
    有一段python代码,原来都跑在本地,既然functionapp可以运行python,还是比较新的python3.11,就想着直接用functionapp来跑了,省的进行sql逻辑改造,并且不吹不黑,python的pandas在处理dataframe上非常灵活。想法是好的,本地VSCODE搭起来python运行环境也很快,直接AZsignin就部署到自己......
  • 英语背单词 专四词汇 2024年07月 ChatGPT
    2024-07-01IndexWordPronunciationPartsofSpeechExplanationTranslationinChinese1badge/bædʒ/nounAsmallobject,typicallyround,thatsignifiesmembership,achievement,orauthority.徽章;证章2milky/ˈmɪlki/adjectiveResemblingorco......
  • Centos7 安装Rabbitmq3.9.11
    安装erlang安装依赖包yum-yinstallgccglibc-develmakencurses-developenssl-develxmltoperlwgetgtk2-develbinutils-devel下载wgethttps://github.com/erlang/otp/releases/download/OTP-24.1.7/otp_src_24.1.7.tar.gz解压tar-zxvfotp_src_24.1.7.tar......
  • Gin框架的几种热加载方法
    原文参考:https://cloud.tencent.com/developer/article/2043002什么是热加载如果你是一名python开发者,应该很熟悉这个。我们在Flask或者Django框架下开发都是支持实时加载的,当我们对代码进行修改时,程序能够自动重新加载并执行,这在我们开发中是非常便利的,可以快速进行代码测试,......
  • BOSHIDA 探讨DC/AC电源模块为绿色能源应用提供可靠的转换解决方案
    BOSHIDA探讨DC/AC电源模块为绿色能源应用提供可靠的转换解决方案DC/AC电源模块是一种能够将直流电源转换为交流电源的装置。随着绿色能源的不断发展和应用,DC/AC电源模块在可再生能源、电动车辆、太阳能发电等领域中扮演着重要的角色。本文将着重探讨DC/AC电源模块为绿色能源应用......
  • AI绘画Stable Diffusion到底有几个版本?超全SD历史发布版本优缺点解析
    大家好,我是设计师阿威StableDiffusion在推出短短两年间已经发布了多个版本,最为人熟悉的就是StabilityAI推出的1.5和SDXL。那么除此之外,还有哪些版本呢?让我们从最初StableDiffusion的起源开始说起。没有Version1.0的StableDiffusion最早的StableDiffusi......
  • 2024百元蓝牙耳机哪个好?2024性价比最高的蓝牙耳机推荐
    2024想要在百元左右找到一款好用的性价比高的蓝牙耳机,确实是个不小的挑战。市场上各种耳机品牌和型号琳琅满目,各有各的特点。你可能会疑惑,如何才能在预算内挑选到一款性价比高、音质好的耳机呢?这篇文章将为你提供一些选购百元性价比高的蓝牙耳机的实用指南,让你在选购过程中不再......