2023河南萌新联赛第(六)场:河南理工大学-F 爱睡大觉的小C

news/2024/9/16 17:38:50/

2023河南萌新联赛第(六)场:河南理工大学-F 爱睡大觉的小C

https://ac.nowcoder.com/acm/contest/63602/F

文章目录

  • 2023河南萌新联赛第(六)场:河南理工大学-F 爱睡大觉的小C
    • 题意
    • 解题思路

题意

新学期的概率论课上,小C正在睡大觉,然而概率论老师的讲课声音还是传到了小C的梦里…
原本小C正在梦中享受打败小Y的胜利,突然小C面前出现了一个长度为 n ( 1 ≤ n ≤ 2 × 1 0 5 ) n(1\le n\le 2\times 10^5) n(1n2×105)的数组 a 1 , a 2 , a 3 , . . . a n ( 1 ≤ a i ≤ 1 0 7 ) a_1,a_2,a_3,...a_n(1\le a_i\le 10^7) a1,a2,a3,...an(1ai107) ,然后概率论老师的声音飘入了他的梦境:“这第 k k k个较大的数的期望是…”,于是小C便想求出对于所有长度大于等于 k ( 1 ≤ k ≤ 100 ) k(1\le k\le 100) k(1k100)连续子区间 k k k大的数期望是多少。请你帮小C计算出来。
文本解释:
连续子区间:对于一个数组,它的连续子区间可以由删掉头和尾的0个或多个数字得到,例如 a = [ 1 , 4 , 2 , 6 , 5 ] a=[1,4,2,6,5] a=[1,4,2,6,5],则集合 [ 1 , 4 , 2 ] , [ 4 , 2 , 6 ] [1,4,2],[4,2,6] [1,4,2],[4,2,6]都是集合 a a a的连续子区间,而集合 [ 1 , 2 , 6 ] [1,2,6] [1,2,6]则不是,因为跳过 a 2 = 4 a_2=4 a2=4,不连续了
k k k大的数:一个数组中有最大的数,次大的数,…,第个 k k k大的数。 例如: a = [ [ 114514 , 1557 , 2333 , 666 , 369 ] a=[[114514,1557,2333,666,369] a=[[114514,1557,2333,666,369]显然第一大的数是 114514 ] 114514] 114514],第二大的数是 2333 2333 2333
期望:在概率论和统计学中,数学期望(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和

解题思路

看题面, 1 ≤ k ≤ 100 1\le k\le 100 1k100尤其引人注目,必有大用。可以发现小于其的数对其是否为区间第 k k k大没有影响,我们可以使用链表,按照数值将 { a } \{a\} {a}排序,从小到大枚举,每处理完一个数就将它从链表中删除,对于某个数 x x x,大于其的数都在链表中,而小于其的数都被删去。在其中找到最前的包含 x x x使 x x x为第 k k k大的 l l l,让 l l l通过链表直到 x x x,在此过程中求取各个合法的期望值,可以达到 O ( n k ) O(nk) O(nk)的复杂度。注意处理边界情况。
##代码

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
struct link{int lf,rf;
}b[N];
struct node{int x,id;
}c[N];
int a[N],n,k;
long long dp[N];
bool cmp(node a,node b){return a.x<b.x;
}
void Delete(int x){b[b[x].lf].rf=b[x].rf;b[b[x].rf].lf=b[x].lf;
}
int main(){cin>>n>>k;for(int i=1;i<=n;i++){cin>>a[i];c[i].x=a[i];c[i].id=i;b[i].lf=i-1,b[i].rf=i+1;}b[n+1].rf=n+1;sort(c+1,c+n+1,cmp);for(int i=1;i<=n;i++){int x=c[i].id;int l=x;int j;for(j=1;j<k&&b[l].lf!=0;j++)l=b[l].lf;int L=b[l].lf;int r=x;for(;j<k&&b[r].rf!=n+1;j++)r=b[r].rf;if(j<k){Delete(x);continue;}int R=b[r].rf;while(L!=x&&r!=n+1){dp[x]+=1ll*(l-L)*(R-r);l=L,L=b[L].lf;r=R,R=b[R].rf;}Delete(x);}long long sum=0;for(int i=1;i<=n;i++)sum+=dp[i];double ans=0;for(int i=1;i<=n;i++)ans+=1ll*a[i]*dp[i]*1.0/sum;printf("%.2lf",ans);
}

http://www.ppmy.cn/news/1040021.html

相关文章

2.SpringMvc中Model、ModelMap和ModelAndView使用详解

1.前言 最近SSM框架开发web项目&#xff0c;用得比较火热。spring-MVC肯定用过&#xff0c;在请求处理方法可出现和返回的参数类型中&#xff0c;最重要就是Model和ModelAndView了&#xff0c;对于MVC框架&#xff0c;控制器Controller执行业务逻辑&#xff0c;用于产生模型数据…

❤ 全面解析若依框架vue2版本(springboot-vue前后分离--前端部分)

❤ 解析若依框架之前台修改 1、修改页面标题和logo 修改网页上的logo ruoyi-ui --> public --> favicon.ico&#xff0c;把这个图片换成你自己的logo 修改网页标题 根目录下的vue.config.js const name process.env.VUE_APP_TITLE || ‘若依管理系统’ // 网页标题 换成…

Redis与MySQL的比较:什么情况下使用Redis更合适?什么情况下使用MySQL更合适?

Redis和MySQL是两种不同类型的数据库&#xff0c;各有自己的特点和适用场景。下面是Redis和MySQL的比较以及它们适合使用的情况&#xff1a; Redis适合的场景&#xff1a; 高性能读写&#xff1a;Redis是基于内存的快速Key-Value存储&#xff0c;读写性能非常高。它适用于需要…

神经网络基础-神经网络补充概念-56-迁移学习

迁移学习&#xff08;Transfer Learning&#xff09;是一种机器学习技术&#xff0c;旨在将在一个任务上学到的知识或模型迁移到另一个相关任务上&#xff0c;以提高新任务的性能。迁移学习的核心思想是通过利用源领域&#xff08;source domain&#xff09;的知识来改善目标领…

【SA8295P 源码分析】76 - Thermal 功耗 之 /dev/thermalmgr 相关调试命令汇总

【SA8295P 源码分析】76 - Thermal 功耗 之 /dev/thermalmgr 相关调试命令汇总 1、配置文件:/mnt/etc/system/config/thermal-engine.conf2、获取当前SOC所有温度传感器的温度:cat /dev/thermalmgr3、查看所有 Thermal 默认配置和自定义配置:echo query config > /dev/th…

自动驾驶,一次道阻且长的远征|数据猿直播干货分享

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 在6月的世界人工智能大会上&#xff0c;马斯克在致辞中宣称&#xff0c;到2023年底&#xff0c;特斯拉便可实现L4级或L5级的完全自动驾驶&#xff08;FSD&#xff09;。两个月之后&#xff0c;马斯克又在X社交平台上发言&am…

线程同步条件变量

为何要线程同步 在线程互斥中外面解决了多线程访问共享资源所会造成的问题。 这篇文章主要是解决当多线程互斥后引发的新的问题&#xff1a;线程饥饿的问题。 什么是线程饥饿&#xff1f;互斥导致了多线程对临界区访问只能改变为串行&#xff0c;这样访问临界资源的代码只能…

gromacs教程练习1

gromacs能在win上运行&#xff0c;还是个开源的软件&#xff0c;这都很值得入手学习 记录下gromacs教程的练习情况&#xff1a; Lysozyme in water 水中的溶菌酶&#xff0c;嗯&#xff0c;估计就是把蛋白处理后放在显试溶剂里跑MD这个模拟。 1、文件的准备&#xff1a; 1、…

系统架构设计师---计算机基础知识之数据库系统结构与规范化

目录 一、基本概念 二、 数据库的结构 三、常用的数据模型 概念数据模型

【Redis】Redis 的主从同步

【Redis】Redis 的主从同步 很多企业都没有使用 Redis 的集群&#xff0c;但是至少都做了主从。有了主从&#xff0c;当主节点(Master) 挂掉的时候&#xff0c;运维让从节点 (Slave) 过来接管&#xff0c;服务就可以继续&#xff0c;否则主节点需要经过数据恢复和重启的过程&a…

笔记:移植xenomai到nuc972(2)

接下来的测试,出现了两个问题 第一个问题是demo程序启动不了,这是上一篇文章忘记说的事,启动不了的原因是权限问题,提示需要root, 但我是用busybox搭的文件系统,直接就是root,不存在权限问题,所以问题出在应用上,经过一番调试后发现,问题出在xenomai的应用库上,具体位置在xen…

进行 200 瓦太阳能 (PV) 模块设计以测量太阳能光伏阵列的电压、电流和功率、综合负荷频率和电压控制系统的方法研究(Simulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

C++ 网络编程项目fastDFS分布式文件系统(三)-Nginx部分

目录 1. 一些基本概念 1.1 Nginx初步认识 1.2 正向/反向代理 1.3 域名和IP 2. Nginx 安装和配置 2.1 安装 2.2 配置 3. Nginx的使用 3.1 部署静态网页 3.2 反向代理和负载均衡 4 课外知识导读 1. URL和URI ​编辑 2. DNS解析过程 1. 一些基本概念 1.1 Nginx初步认…

Java进阶篇--数据结构

目录 一.数组&#xff08;Array&#xff09;&#xff1a; 1.1 特点&#xff1a; 1.2 基本操作&#xff1a; 1.3 使用数组的好处包括&#xff1a; 1.4 数组也有一些限制&#xff1a; 二.集合框架&#xff08;Collections Framework&#xff09;&#xff1a; 2.1 列表…

企业为什么会加入行业协会?

行业协会是什么 行业协会是介于政府与企业之间&#xff0c;产品制造商和经营商之间的社会性中介组织。主要为协会成员提供咨询&#xff0c;沟通&#xff0c;监督&#xff0c;协调服务。行业协会属于民间组织&#xff0c;不属于政府的管理机构&#xff0c;但是会和政府有相关合…

Springboot 封装整活 Mybatis 动态查询条件SQL自动组装拼接

前言 ps&#xff1a;最近在参与3100保卫战&#xff0c;战况很激烈&#xff0c;刚刚打完仗&#xff0c;来更新一下之前写了一半的博客。 该篇针对日常写查询的时候&#xff0c;那些动态条件sql 做个简单的封装&#xff0c;自动生成&#xff08;抛砖引玉&#xff0c;搞个小玩具&a…

微服务-Fegin

在之前我们两服务之间调用的时候用的是restTemplate,但是这个方式调用存在很多的问题 String url "http://userservice/user/" order.getUserId(); 代码可读性差&#xff0c;编码体验不统一参数复杂的url难以维护 所以我们大力推出我们今天的主角--Fegin Feign是…

RPA机器人《国网电力》电力行业实施案例-基层减负 提质增效

背景&#xff1a;随着国网战略目标加速落地&#xff0c;数字化转型和精益化管理深化推进&#xff0c;各供电公司亟待突破精细化管控不深入、执行标准不够统一、系统数据不够融通等制约工作质效提升的能力瓶颈&#xff0c;针对这些问题&#xff0c;决定引入诸如RPA、OCR等技术&a…

在 React 中获取数据的6种方法

一、前言 数据获取是任何 react 应用程序的核心方面。对于 React 开发人员来说&#xff0c;了解不同的数据获取方法以及哪些用例最适合他们很重要。 但首先&#xff0c;让我们了解 JavaScript Promises。 简而言之&#xff0c;promise 是一个 JavaScript 对象&#xff0c;它将…

Mybatis分页插件——PageHelper

一、定义 PageHelper用在mybatis插件里面&#xff0c;可以自动的为最近的sql语句进行分页查询&#xff0c;提供分页的页码size和每页数量num&#xff0c;在查询过程中hi自动的拼接limit关键字&#xff0c;不用再改写sql语句了 在PageHelper.startPage()&#xff1b; 在启动查询…