蓝桥杯2024省A.成绩统计

news2025/4/22 21:45:08

蓝桥杯2024省A.成绩统计

题目

在这里插入图片描述

题目解析与思路

题目要求返回至少要检查多少个人的成绩,才有可能选出k名同学,他们的方差小于一个给定的值 T

二分枚举答案位置,将答案位置以前的数组单独取出并排序,然后用k长滑窗O(1)计算方差

问题在于如何O(1)计算方差?

将方差公式拆开,发现Vi2可以通过提前预处理前缀平方和得到,∑vi可以用前缀和得到,因此需要提前处理前缀平方和与前缀和

在这里插入图片描述

代码

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N=2e5+5;
const int mod=998244353;
vector<int> v;
int n,k,t;
int a[N],qsum[N],qpf[N];
bool check(int mid){
    //将前mid个元素取出,并排序
    for(int i=1;i<=mid;i++) a[i] = v[i];
    sort(a+1,a+mid+1);
    //前缀和 前缀平方和
    qsum[0] = 0,qpf[0] = 0;
    for(int i=1;i<=mid;i++) qsum[i]=qsum[i-1]+a[i];
    for(int i=1;i<=mid;i++) qpf[i]=qpf[i-1]+a[i]*a[i];
    
    double jun=0,fc=0;
    //先计算前k个
    for(int i=1;i<=k;i++) jun += (double)a[i]/k;
    fc = (double)(qpf[k]-(double)2*jun*qsum[k]+(double)k*jun*jun)/k;
    //用增量更新
    for(int i=k+1;i<=mid;i++){
        jun = jun-(double)a[i-k]/k + (double)a[i]/k;
        fc = min(fc,(qpf[i]-qpf[i-k] - (double)2*jun*(qsum[i]-qsum[i-k])+(double)k*jun*jun)/k);
        if(fc < t) return true;
    }
    if(fc < t) return true;
    return false;
}
signed main(){
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(false);
    
    cin>>n>>k>>t;
    v.resize(n+1);
    for(int i=1;i<=n;i++){
        cin>>v[i];
    }
    int l=k,r=n,ans=LLONG_MAX;
    while(l<=r){
        int mid=(l+r)>>1;
        if(check(mid)) ans=min(ans,mid),r=mid-1;
        else l=mid+1;
    }
    if(ans > LLONG_MAX/2) cout<<-1<<endl;
    else cout<<ans<<endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2340358.html

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

相关文章

Mac mini 安装mysql数据库以及出现的一些问题的解决方案

首先先去官网安装一下mysql数据库&#xff0c;基本上都是傻瓜式安装的流程&#xff0c;我也就不详细说了。 接下来就是最新版的mysql安装的时候&#xff0c;他就会直接让你设置一个新的密码。 打开设置&#xff0c;拉到最下面就会看到一个mysql的图标&#xff1a; 我设置的就是…

俄罗斯方块-简单开发版

一、需求分析 实现了一个经典的俄罗斯方块小游戏&#xff0c;主要满足以下需求&#xff1a; 1.图形界面 使用 pygame 库创建一个可视化的游戏窗口&#xff0c;展示游戏的各种元素&#xff0c;如游戏区域、方块、分数等信息。 2.游戏逻辑 实现方块的生成、移动、旋转、下落和锁…

你学会了些什么200601?--Flask搭建造测试数据平台

搭建造数平台的环境&#xff1a; ***python3.7 ***html5 ***css ***JavaScript ***Ajax ***MySQL 前台页面的显示 1.为了页面美化&#xff0c;使用了JavaScript&#xff0c;通过逐级展开/隐藏的的方式显示下一级菜单 2.为了在提交表单数据时页面不发生跳转&#xff0c;需要引用…

【音视频】FLV格式分析

FLV概述 FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式&#xff0c;由于其封装后的⾳视频⽂件体积⼩、封装简单等特点&#xff0c;⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤FLV格式封装的⽂件后缀为.flv。 FLV封装格式是由⼀个⽂件头(file header)和…

Keil5没有stm32的芯片库

下载完重启就行了&#xff0c;我这里就不演示了&#xff0c;stm已经下载&#xff0c;随便选的一个芯片库演示一下

【DVWA 靶场通关】 File Inclusion(文件包含漏洞)

1. 前言 文件包含漏洞 是 Web 应用中较为常见的漏洞之一&#xff0c;攻击者通过操控文件路径&#xff0c;访问或包含系统上的敏感文件&#xff0c;甚至执行恶意代码。DVWA&#xff08;Damn Vulnerable Web Application&#xff09;提供了一个理想的实验环境&#xff0c;让安全…

游戏引擎学习第229天

仓库:https://gitee.com/mrxiao_com/2d_game_5 回顾上次内容并介绍今天的主题 上次留下的是一个非常简单的任务&#xff0c;至少第一步是非常简单的。我们需要在渲染器中加入排序功能&#xff0c;这样我们的精灵&#xff08;sprites&#xff09;才能以正确的顺序显示。为此我…

【C++编程入门】:从零开始掌握基础语法

C语言是通过对C语言不足的地方进行优化创建的&#xff0c;C在C语言之上&#xff0c;C当然也兼容C语言&#xff0c; 在大部分地方使用C比C更方便&#xff0c;可能使用C需要一两百行代码&#xff0c;而C只需要五六十行。 目录 C关键字 命名空间 缺省参数 缺省参数分类 函数…

网络开发基础(游戏方向)之 概念名词

前言 1、一款网络游戏分为客户端和服务端两个部分&#xff0c;客户端程序运行在用户的电脑或手机上&#xff0c;服务端程序运行在游戏运营商的服务器上。 2、客户端和服务端之间&#xff0c;服务端和服务端之间一般都是使用TCP网络通信。客户端和客户端之间通过服务端的消息转…

【源码】【Java并发】【AQS】从ReentrantLock、Semaphore、CutDownLunch、CyclicBarrier看AQS源码

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f4da;欢迎订阅专栏…

k8s介绍与实践

第一节 理论 基础介绍&#xff0c;部署实践&#xff0c;操作实践&#xff0c;点击这里学习 第二节 dashboard操作 查看安装的dashboard服务信息 kubectl get pod,svc -n kubernetes-dashboard 网页登录地址&#xff1a;https://server_ip:30976/#/login 创建token kube…

KRaft面试思路引导

Kafka实在2.8之后就用KRaft进行集群管理了 Conroller负责选举Leader&#xff0c;同时Controller管理集群元数据状态信息&#xff0c;并将元数据信息同步给各个分区的Leader 和Zookeeper管理一样&#xff0c;会选出一个Broker作为Controller去管理整个集群&#xff0c;但是元数…

FreeRTOS菜鸟入门(六)·移植FreeRTOS到STM32

目录 1. 获取裸机工程模版 2. 下载 FreeRTOS V9.0.0 源码 3. FreeRTOS文件夹内容简介 3.1 FreeRTOS文件夹 3.1.1 Demo文件夹 3.1.2 License 文件夹 3.1.3 Source 文件夹 3.2 FreeRTOS-Plus 文件夹 4. 往裸机工程添加 FreeRTOS 源码 5. 拷贝 FreeRTOSConfig…

14.第二阶段x64游戏实战-分析人物的名字

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;13.第二阶段x64游戏实战-分析人物等级和升级经验 名字&#xff08;中文英文符号…

【CS*N是狗】亲测可用!!WIN11上禁用Chrome自动更新IDM插件

现象&#xff1a;每次打开chrome后IDM会弹出提示插件版本不一致。经过排查后发现是chrome把IDM插件给更新了&#xff0c;导致IDM提示版本不匹配。经过摸索后&#xff0c;得到了可行的方案。 第一步&#xff0c;打开Chrome&#xff0c;把IDM插件卸载掉&#xff0c;然后重新安装I…

漫游git rebase + 浅谈git checkout和git branch -f的分支命令

今天学了两个命令非常有意思&#xff1a;一个是git checkout&#xff0c;一个是git branch -f。我们可以认为在提交树上&#xff0c;任何一个节点代表着一次提交。并且&#xff0c;git commit将会在 H E A D HEAD HEAD指针指向的节点上进行进一步提交。将每一个分支名视为标记当…

深入理解 React 组件的生命周期:从创建到销毁的全过程

React 作为当今最流行的前端框架之一&#xff0c;其组件生命周期是每个 React 开发者必须掌握的核心概念。本文将全面剖析 React 组件的生命周期&#xff0c;包括类组件的各个生命周期方法和函数组件如何使用 Hooks 模拟生命周期行为&#xff0c;帮助开发者编写更高效、更健壮的…

OpenCV 图形API(44)颜色空间转换-----将图像从 BGR 色彩空间转换为 RGB 色彩空间函数BGR2RGB()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将图像从BGR色彩空间转换为RGB色彩空间。 该函数将输入图像从BGR色彩空间转换为RGB。B、G和R通道值的常规范围是0到255。 输出图像是8位无符号3通…

配置nginx服务,通过多ip区分多网站

首先关闭防火墙,setenforce 0 关过了,不截图了 多IP,首先配置多个IP地址 可以在vm增加虚拟网卡,也可以在同一网卡配置多个IP,我用第一种 记得点确定 查看新的虚拟网卡IP 没有IP,配置一个 安装nginx 写配置 server{listen 192.168.214.130:80;root /www/ip/130; # 资源根目…

[k8s实战]Containerd 1.7.2 离线安装与配置全指南(生产级优化)

[k8s实战]Containerd 1.7.2 离线安装与配置全指南&#xff08;生产级优化&#xff09; 摘要&#xff1a;本文详细讲解在无外网环境下部署 Containerd 1.7.2 容器运行时的完整流程&#xff0c;涵盖二进制包安装、私有镜像仓库配置、Systemd服务集成等关键步骤&#xff0c;并提供…