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

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.mzph.cn/news/42518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据平台中元数据库—MySQL的异常故障解决

本文的主要目标是解决大数据平台中元数据库MySQL的异常故障。通过分析应用响应缓慢的问题&#xff0c;找到了集群组件HIVE和元数据库MySQL的原因。通过日志分析、工具检测和专家指导等一系列方法&#xff0c; 最终确定问题的根源是大数据集群中租户的不规范使用所导致&#xff…

[Unity]Lua本地时间、倒计时和正计时。

惯例&#xff0c;直接上代码&#xff1a; --正计时开始时的时间戳 self.begin_time os.time() --倒计时时长&#xff0c;01:30:00 self.countdown_time 5400 --是否开始计时 self.is_update_local_time true--Unity Update function time_transition:update_local_timer()i…

Linux学习之iptables过滤规则的使用

cat /etc/redhat-release看到操作系统是CentOS Linux release 7.6.1810&#xff0c;uname -r看到内核版本是3.10.0-957.el7.x86_64&#xff0c;iptables --version可以看到iptables版本是v1.4.21。 iptables -t filter -A INPUT -s 10.0.0.8 -j ACCEPT会在最后一行插入。 10…

代码随想录day52

300最长递增子序列 class Solution { public:int lengthOfLIS(vector<int>& nums) {int piles 0; // 牌堆数初始化为 0vector<int> top(nums.size()); // 牌堆数组 topfor (int i 0; i < nums.size(); i) {int poker nums[i]; int left 0, right…

04 qt功能类、对话框类和文件操作

一 QT中时间和日期 时间 ---- QTime日期 ---- QDate对于Qt而言,在实际的开发过程中, 1)开发者可能知道所要使用的类 ---- >帮助手册 —>索引 -->直接输入类名进行查找 2)开发者可能不知道所要使用的类,只知道开发需求文档 ----> 帮助 手册,按下图操作: 1 …

Android 13像Settings一样获取SIM卡信息

一.背景 由于客户定制的Settings里面需要获取到SIM卡信息,所以需要实现此功能。 目录 一.背景 二.前提条件 三.调用api 二.前提条件 首先应用肯定要是系统应用,并且导入framework.jar包,具体可以参考: Android 应用自动开启辅助(无障碍)功能并使用辅助(无障碍)功能_…

python中的cnn:介绍和基本使用方法

python中的cnn&#xff1a;介绍和基本使用方法 卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;简称CNN&#xff09;是一种在图像识别、语音识别、自然语言处理等许多领域取得显著成功的深度学习模型。CNN的设计灵感来源于生物的视觉系统&#xff0c;由多…

WordPress更换域名后-后台无法进入,网站模版错乱,css失效,网页中图片不显示。完整解决方案(含宝塔设置)

我在实际解决问题时用到了 【简单暴力解决方案】的《方法一&#xff1a;修改wp-config.php》 和 【简单暴力-且特别粗暴-的解决方案】 更换域名时经常遇到的几个问题&#xff1a; 1、更换域名后&#xff0c;后台无法进入 2、更换域名后&#xff0c;网站模版错乱&#xff0c;c…

网络通信原理网络层TCP/IP协议(第四十三课)

1.什么是TCP/IP 目前应用广泛的网络通信协议集 国际互联网上电脑相互通信的规则、约定。 2.主机通信的三要素 IP地址:用来标识一个节点的网络地址(区分网络中电脑身份的地址,如人有名字) 子网掩码:配合IP地址确定网络号 IP路由:网关的地址,网络的出口 3.IP地址 …

软件第三方测评机构做安全测试有用吗?

术语第三方测试/外包软件测试本身是不言自明的&#xff0c;即由任何个人/独立组织对软件进行测试 不直接或间接参与特定软件的开发。 在做出选择的决定时&#xff0c;可能会想到很多问题 内部测试团队或进行离岸第三方测试&#xff0c;首先是“我们为什么要外包软件测试&#…

C++设计模式结构型之代理模式

一、概述 代理模式是一种结构型模式&#xff0c;在很多不同的场合具有广泛的分类和应用。其主要实现的思想是在客户端和真正要访问的对象之间引入一个 代理对象&#xff08;间接层&#xff09;&#xff0c;于是&#xff0c;以往客户端对真正对象的访问现在变成了通过代理对…

数学建模-规划工具箱yalmip

官网下载 实例 %% yalmip 求解 yalmip clc;clear;close all; %% %sdpvar实型变量 intvar 整形变量 binvar 0-1型变量 psdpvar(3,1); %定义变量 %目标函数 要把求最大值转化为最小值 Objective-p(1)^2p(2)^2-p(2)*p(3);%约束条件 Constraints[0<p<1,(p(1)^2p…

音视频FAQ(一):视频直播卡顿

一、摘要 本文介绍了视频直播卡顿的四个主要原因&#xff0c;用户网络问题、用户设备性能问题、技术路线的选择和实现问题。因本文主要阐述视频直播的卡顿&#xff0c;故技术路线的实现指的是&#xff1a;CDN供应商的实现问题&#xff0c;包含CDN性能不足、CDN地区覆盖不足。对…

Vc - Qt - 绘制窗口背景色

要在Qt中绘制一个背景颜色&#xff0c;你可以使用Qt的绘图功能来完成。下面是一种简单的方法&#xff1a; 步骤1&#xff1a;在你想要绘制背景颜色的QWidget&#xff08;例如QMainWindow或QDialog&#xff09;的派生类中&#xff0c;重写 它的paintEvent函数。步骤2&#xff1a…

matlab中exp和expm的区别

exp()为数组 X 中的每个元素返回指数 e x e^{x} ex expm()计算 X 的矩阵指数。 两个函数传入矩阵后计算的结果是不同的&#xff0c;千万不能混淆。之前曾经想当然得把exp里传入矩阵当矩阵指数使用&#xff0c;也未验证正确性&#xff0c;实不应该。

uni-app中使用pinia

目录 Pinia 是什么&#xff1f; uni-app 使用Pinia main.js 中引用pinia 创建和注册模块 定义pinia方式 选项options方式 定义pinia 页面中使用 pinia选项options方式 函数方式 定义pinia 页面中使用 函数方式 定义的pinia Pinia 是什么&#xff1f; Pinia&#xff0…

用户新增预测——baseline学习笔记

一、赛题理解 1. 赛题名称 用户新增预测挑战赛 2. 赛题数据集 赛题数据由约62万条训练集、20万条测试集数据组成&#xff0c;共包含13个字段。其中uuid为样本唯一标识&#xff0c;eid为访问行为ID&#xff0c;udmap为行为属性&#xff0c;其中的key1到key9表示不同的行为属性…

S-Video端口接口芯片ESD保护方案图

在音/视频领域&#xff0c;除了常见的HDMI、DVI接口等&#xff0c;还有一些冷门的接口&#xff0c;比如S-Video端口&#xff0c;相信很多人可能都没有听说过。S-Video视频端口同样拥有较好的数据传输功能。S-Video二分量视频端口&#xff0c;英文全称Separate Video&#xff0c…

Macbook 终端 git 命令补全和提示

Mac OS自带的终端&#xff0c;用起来虽然有些不太方便&#xff0c;界面也不够友好&#xff0c;关键是在windows上用习惯了自动补全功能&#xff0c;在Mac上一个个的拼写单词是真的难受&#xff0c;逼着我记英文单词。 经过一天的磨合&#xff0c;我实在忍不了&#xff0c;在网上…

复习vue3,简简单单记录

这里的知识是结合视频以及其他文章一起学习&#xff0c;仅用于个人复习记录 ref 和reactive ref 用于基本类型 reactive 用于引用类型 如果使用ref 传递对象&#xff0c;修改值时候需要写为obj.value.attr 方式修改属性值 如果使用reactive 处理对象&#xff0c;直接obj.att…