CCF-CSP认证 202012-2 期末预测之最佳阈值

2024-06-19 16:38

本文主要是介绍CCF-CSP认证 202012-2 期末预测之最佳阈值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

思路写在注释里面了。《算法笔记》P147页,活用递推章节语:“很多题目需要细心考虑过程中是否存在可能的递推关系,如果能找到这样的递推关系,就能使时间复杂度下降不少。例如就一类涉及序列的题目来说,假如序列每一位所需要计算的值都可以通过该位左右两侧的计算结果得到,那么就可以考虑所谓的‘左右两侧的结果’是否能够通过递推进行预处理来得到,这样在后面的使用中就可以不必反复求解。”

PAT B1040/A1093也是这个思路。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
struct Student
{int y_{ 0 };int result_{ 0 };
};
bool cmp(const Student &lhs, const Student &rhs)
{if (lhs.y_ != rhs.y_) return lhs.y_ < rhs.y_;return lhs.result_ < rhs.result_;
}
struct ThreeElementArr {int y_{ 0 };int pass_lower_than_y_{ 0 };int fail_higher_than_y_{ 0 };
};
int main()
{
#ifdef LOCALfreopen("input.txt", "r", stdin);
#endifint m; cin >> m; vector<Student> student_set(m);for (int i = 0; i < m; ++i) {cin >> student_set[i].y_ >> student_set[i].result_;}// 根据y,m个人形成一个排序,把m个人划分成rank+1个类(相同的y在相同的类)(rank<m,从0开始)。// 维护一个大小为rank+1的数组,数组元素为三元组,// 三元组的构成为:{这个rank的y,这个rank之前有多少人过了,这个rank之后有多少人没过};// 从前向后扫描一次排好序的student_set获得第二个元,从后向前获得第三个元,时间复杂度O(2N).// 再扫描一遍这个数组,第二个元和第三个元加和结果最小的元素的y就是阈值y.sort(student_set.begin(), student_set.end(), cmp);vector<ThreeElementArr> rank_arr(m);// 第二个元,即小于此分数的人中有多少人没过。int pass_lower_than_y = 0;int rank = 0;for (int i = 0; i < m; ++i) {if (i == 0) {rank_arr[rank].y_ = student_set[i].y_;}else if (i != 0 && student_set[i].y_ != student_set[i - 1].y_) {++rank;rank_arr[rank].y_ = student_set[i].y_;rank_arr[rank].pass_lower_than_y_ = pass_lower_than_y;}if (student_set[i].result_ == 1) {++pass_lower_than_y;}}// 第三个元,也就是分数大于等于此分数的人中有多少人没有过。int rrank = rank;int fail_higher_tan_y = 0;for (int i = m - 1; i >= 0; i--) {if (i != m - 1 && student_set[i].y_ != student_set[i + 1].y_) {--rrank;}if (student_set[i].result_ == 0) {++fail_higher_tan_y;}rank_arr[rrank].fail_higher_than_y_ = fail_higher_tan_y;}// 寻找和最小的元素的yint min=999999999; int min_idx;for (int i = rank; i >= 0; --i) {if (rank_arr[i].fail_higher_than_y_ + rank_arr[i].pass_lower_than_y_ < min) {min = rank_arr[i].fail_higher_than_y_ + rank_arr[i].pass_lower_than_y_;min_idx = i;}}cout << rank_arr[min_idx].y_;
}

这篇关于CCF-CSP认证 202012-2 期末预测之最佳阈值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1075571

相关文章

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

Prometheus与Grafana在DevOps中的应用与最佳实践

Prometheus 与 Grafana 在 DevOps 中的应用与最佳实践 随着 DevOps 文化和实践的普及,监控和可视化工具已成为 DevOps 工具链中不可或缺的部分。Prometheus 和 Grafana 是其中最受欢迎的开源监控解决方案之一,它们的结合能够为系统和应用程序提供全面的监控、告警和可视化展示。本篇文章将详细探讨 Prometheus 和 Grafana 在 DevO

springboot整合swagger2之最佳实践

来源:https://blog.lqdev.cn/2018/07/21/springboot/chapter-ten/ Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架。 一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,加上swagger-ui,可以有很好的呈现。 SpringBoot集成 pom <!--swagge

CSP-J基础之数学基础 初等数论 一篇搞懂(一)

文章目录 前言声明初等数论是什么初等数论历史1. **古代时期**2. **中世纪时期**3. **文艺复兴与近代**4. **现代时期** 整数的整除性约数什么样的整数除什么样的整数才能得到整数?条件:举例说明:一般化: 判断两个数能否被整除 因数与倍数质数与复合数使用开根号法判定质数哥德巴赫猜想最大公因数与辗转相除法计算最大公因数的常用方法:举几个例子:例子 1: 计算 12 和 18

【Shiro】Shiro 的学习教程(二)之认证、授权源码分析

目录 1、背景2、相关类图3、解析3.1、加载、解析阶段3.2、认证阶段3.3、授权阶段 1、背景 继上节代码,通过 debug 进行 shiro 源码分析。 2、相关类图 debug 之前,先了解下一些类的结构图: ①:SecurityManager:安全管理器 DefaultSecurityManager: RememberMeManager:实现【记住我】功能

CCF推荐C类会议和期刊总结(计算机网络领域)

CCF推荐C类会议和期刊总结(计算机网络领域) 在计算机网络领域,中国计算机学会(CCF)推荐的C类会议和期刊为研究者提供了广泛的学术交流平台。以下是对所有C类会议和期刊的总结,包括全称、出版社、dblp文献网址以及所属领域。 目录 CCF推荐C类会议和期刊总结(计算机网络领域) C类期刊 1. Ad Hoc Networks 2. CC 3. TNSM 4. IET Com

OpenStack离线Train版安装系列—3控制节点-Keystone认证服务组件

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版