【CSP】202012-2 期末预测之最佳阈值

2020年 第21次CCF计算机软件能力认证  202012-2 期末预测之最佳阈值

原题链接:期末预测之最佳阈值

时间限制: 1.0 秒

空间限制: 512 MiB

目录

题目背景

题目描述

输入格式

输出格式

样例1输入

样例1输出

样例1解释

样例2输入

样例2输出

子任务

解题思路

AC代码


期末预测之安全指数

题目背景

考虑到安全指数是一个较大范围内的整数、小菜很可能搞不清楚自己是否真的安全,顿顿决定设置一个阈值 𝜃,以便将安全指数 𝑦转化为一个具体的预测结果——“会挂科”或“不会挂科”。

因为安全指数越高表明小菜同学挂科的可能性越低,所以当 𝑦≥𝜃 时,顿顿会预测小菜这学期很安全、不会挂科;反之若 𝑦<𝜃,顿顿就会劝诫小菜:“你期末要挂科了,勿谓言之不预也。”

那么这个阈值该如何设定呢?顿顿准备从过往中寻找答案。

题目描述

具体来说,顿顿评估了 𝑚位同学上学期的安全指数,其中第 𝑖i(1≤𝑖≤𝑚)位同学的安全指数为 𝑦𝑖,是一个 [0,10^8] 范围内的整数;同时,该同学上学期的挂科情况记作 𝑟𝑒𝑠𝑢𝑙𝑡𝑖∈0,1,其中 0 表示挂科、1 表示未挂科。

相应地,顿顿用 predict𝜃(𝑦)表示根据阈值 𝜃将安全指数 𝑦 转化为的具体预测结果。 如果predict𝜃(𝑦𝑗) 与 𝑟𝑒𝑠𝑢𝑙𝑡𝑗相同,则说明阈值为 𝜃时顿顿对第 𝑗位同学是否挂科预测正确;不同则说明预测错误。

predict𝜃(𝑦) = 0 (𝑦<𝜃)   

predictθ​(y) = 1​ (y≥θ​)

最后,顿顿设计了如下公式来计算最佳阈值 𝜃∗ :

𝜃∗=max ⁡argmax∑(predict𝜃(𝑦𝑗)==𝑟𝑒𝑠𝑢𝑙𝑡𝑗)          𝜃∈yi​         j <= 1 <= m

该公式亦可等价地表述为如下规则:

  1. 最佳阈值仅在 𝑦𝑖​ 中选取,即与某位同学的安全指数相同;

  2. 按照该阈值对这 𝑚 位同学上学期的挂科情况进行预测,预测正确的次数最多(即准确率最高);

  3. 多个阈值均可以达到最高准确率时,选取其中最大的。

输入格式

从标准输入读入数据。

输入的第一行包含一个正整数 𝑚。

接下来输入 𝑚 行,其中第 𝑖i(1≤𝑖≤𝑚)行包括用空格分隔的两个整数 𝑦𝑖和 𝑟𝑒𝑠𝑢𝑙𝑡𝑖,含义如上文所述。

输出格式

输出到标准输出。输出一个整数,表示最佳阈值 𝜃∗。

样例1输入

6
0 0
1 0
1 1
3 1
5 1
7 1

样例1输出

3

样例1解释

按照规则一,最佳阈值的选取范围为{ 0,1,3,5,7}。

𝜃=0 时,预测正确次数为 4;

𝜃=1 时,预测正确次数为 5;

𝜃=3 时,预测正确次数为 5;

𝜃=5 时,预测正确次数为 4;

𝜃=7 时,预测正确次数为 3。

阈值选取为 1 或 3 时,预测准确率最高; 所以按照规则二,最佳阈值的选取范围缩小为 {1,3}。

依规则三,𝜃∗=max⁡(1,3)=3。

样例2输入

8
5 1
5 0
5 0
2 1
3 0
4 0
100000000 1
1 0

样例2输出

100000000

子任务

70%的测试数据保证 𝑚≤200;

全部的测试数据保证 2≤𝑚≤10^5。

解题思路

1.结构体存储数据。

2.要对数据进行排序(从小到大)再处理。

3.找规律(结论):“θ”值为a[i].y时的预测正确次数 = a[i].y前面有多少resullt = 0 + a[i].y当前和后面有多少resullt = 1

4.根据结论,我们需要知道a[i].y前面有多少resullt = 0 以及 a[i].y当前和后面有多少resullt = 1,也就是说要对每个a[i].y前面的result值进行记录,显然用前缀和可求得。

5.求完前缀和后便可计算出“θ”值为a[i].y时的预测正确次数。注意:对于y值相同的数据,我们只处理一次,否则重复进行计算的结果是错误的。

AC代码

#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int m;struct x{int y;int result;int sum0;   //记录a[1]——a[i] 有多少resullt = 0int sum1;   //记录a[1]——a[i] 有多少resullt = 1int sum;    //“θ”值为a[i].y时的预测正确次数 = a[i].y前面有多少resullt = 0 + 当前和后面有多少resullt = 1
}a[N];bool cmp(x a, x b)
{//把y按照从小到大顺序排序 y值相同则把result按从小到大排列if(a.y != b.y)  return a.y < b.y;else return a.result < b.result;
}int main()
{cin >> m;for(int i = 1; i <= m; i ++)    cin >> a[i].y >> a[i].result;sort(a, a+m+1, cmp); //统计a[1].y 到 a[i].y 的resullt 0 和 1 的数量(实际上就是求前缀和for(int i = 1; i <= m; i ++){if(a[i].result == 1) a[i].sum1 += a[i-1].sum1 + 1, a[i].sum0 = a[i-1].sum0 ;else a[i].sum0 += a[i-1].sum0 + 1, a[i].sum1 = a[i-1].sum1 ;}int ans = 0, max = 0;//统计“θ”值为a[i].y时的预测正确次数for(int i = 1; i <= m; i ++){//注意 遇到y值相同时要特殊处理 即相同的y值只计算一次if(a[i].y == a[i-1].y ) a[i].sum = a[i-1].sum;else a[i].sum = a[i-1].sum0 + a[m].sum1 - a[i-1].sum1 ;if(max <= a[i].sum) max = a[i].sum, ans = a[i].y;}cout << ans << endl;return 0;
}

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

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

相关文章

AI网络爬虫:无限下拉滚动页面的另类爬取方法

现在很多网页都是无限下拉滚动的。可以拉动到底部&#xff0c;然后保存网页为mhtml格式文件。 接着&#xff0c;在ChatGPT中输入提示词&#xff1a; 你是一个Python编程高手&#xff0c;要完成一个关于爬取网页内容的Python脚本的任务&#xff0c;下面是具体步骤&#xff1a; …

String,StringBuffer ,StringBuilder 的区别及其详解

目录 一、String1.1 String介绍1.2 深入理解String的不可变性1.3 String 操作字符串方法 二、StringBuffer2.1 StringBuffer介绍2.2 StringBuffer 构造方法2.3 StringBuffer 常用方法 三、StringBuilder2.1 StringBuffer介绍 四、String&#xff0c;StringBuffer &#xff0c;S…

为图片设置经纬度信息

一、java实现 小编看了很多技术博客&#xff0c;但是测试要么下载的jar包中的api和博客对不上&#xff0c;要么就是不对&#xff0c;总之没实现 Java 读取图片信息 java 写入 exif 信息 使用Java读取和修改图片的Exif信息 java获取图片的GPS信息 https://drewnoakes.com/code/e…

MySQL之数据库字段约束学习笔记(三)

MySQL 中的字段约束用于限制字段的取值范围&#xff0c;确保数据的一致性和完整性。常见的字段约束包括&#xff1a; PRIMARY KEY&#xff1a;定义主键约束&#xff0c;唯一标识表中的每一行数据。FOREIGN KEY&#xff1a;定义外键约束&#xff0c;确保两个表之间的关联完整性…

Python 介绍

python 发展简史 Python 起源&#xff08;1989-1991&#xff09; Python的诞生可以追溯到1989年&#xff0c;当时Guido van Rossum在荷兰国家数学和计算机科学研究所工作时&#xff0c;出于对当时编程语言的不满&#xff0c;开始构思一种新的编程语言。他希望这种语言能够弥补C…

【Python】使用 Pandas 统计每行数据中的空值

缘分让我们相遇乱世以外 命运却要我们危难中相爱 也许未来遥远在光年之外 我愿守候未知里为你等待 我没想到为了你我能疯狂到 山崩海啸没有你根本不想逃 我的大脑为了你已经疯狂到 脉搏心跳没有你根本不重要 &#x1f3b5; 邓紫棋《光年之外》 在数据分析…

传感器的基本特性

传感器的基本特性主要包括以下几个方面&#xff1a; 静态特性&#xff1a;这是指传感器在被测量的各个值处于稳定状态时的输入和输出关系。传感器的静态特性可以用一些静态性能指标来衡量&#xff0c;主要包括线性度、灵敏度、迟滞、重复性、漂移和分辨力等。其中&#xff0c;线…

Python 网络爬虫:深入解析 Scrapy

大家好&#xff0c;在当今数字化时代&#xff0c;获取和分析网络数据是许多项目的关键步骤。从市场竞争情报到学术研究&#xff0c;网络数据的重要性越来越被人们所认识和重视。然而&#xff0c;手动获取和处理大量的网络数据是一项繁琐且耗时的任务。幸运的是&#xff0c;Pyth…

vue3 todolist 简单例子

vue3 简单的TodList 地址&#xff1a; https://gitee.com/cheng_yong_xu/vue3-composition-api-todo-app-my 效果 step-1 初始化项项目 我们不采用vue cli 搭建项目 直接将上图文件夹&#xff0c;复制到vscode编辑器&#xff0c;清空App.vue的内容 安装包 # 安装包 npm…

云原生架构案例分析_2.云原生技术助力某汽车公司数字化转型实践

名词解释&#xff1a; 互联网 在“互联网”模式下&#xff0c;我们仅仅把互联网看作是一种传播工具、传播手段、传播渠道和传播平台&#xff0c;对于互联网的应用大体上是在既有的运作逻辑的基础之上&#xff0c;把互联网作为延伸传媒影响力、价值和功能的一种延伸型工具&…

Linux基础1-基本指令1

1.Linux学习前言 Linux的学习非常重要&#xff0c;我们学习Linux的第一步是在电脑中搭建Linux环境。 对于没有搭建过的可以看这阿伟t的一篇文章 【Linux入门】Linux环境配置-CSDN博客 我的环境为XShell,运行的云服务器是阿里云 2.本章重点 1.显示当前目录下的所有文件…

iperf

文章目录 1.安装1.1在 Ubuntu 上安装1.2在 CentOS 上安装 2.iperf服务端选项3.iperf客户端选项4.iperf常用命令5.结果展示5.1 tcp结果展示5.2 udp结果展示 Iperf是一款基于TCP/IP和UDP/IP的网络性能测试工具&#xff0c;它可以用来测量网络带宽和网络质量&#xff0c;还可以提供…

针对大模型的上下文注入攻击

大型语言模型&#xff08;LLMs&#xff09;的开发和部署取得了显著进展。例如ChatGPT和Llama-2这样的LLMs&#xff0c;利用庞大的数据集和Transformer架构&#xff0c;能够产生连贯性、上下文准确性甚至具有创造性的文本。LLMs最初和本质上是为静态场景设计的&#xff0c;即输入…

asio之winsock的初始化

简介 asio中&#xff0c;winsock初始化工作是放在winsock_init类中来处理的 类结构 #mermaid-svg-aC4x3cdr8TKGhsnX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-aC4x3cdr8TKGhsnX .error-icon{fill:#552222;}#…

Xilinx RFSOC 47DR 8收8发 信号处理板卡

系统资源如图所示&#xff1a;  FPGA采用XCZU47DR 1156芯片&#xff0c;PS端搭载一组64Bit DDR4,容量为4GB,最高支持速率&#xff1a;2400MT/s;  PS端挂载两片QSPI X4 FLASH&#xff1b;  PS支持一路NVME存储&#xff1b;  PS端挂载SD接口&#xff0c;用于存储程序&…

解决kettle界面右上角的connect消失——且使用admin登录不上Kettle资源库

一、问题描述 1.1、Kettle界面右上角的connect消失了 当我们配置Kettle界面的资源库(Other Repositories)内容后,Kettle界面右上角的connect消失了;如下图所示: 1.2、使用默认的账户【admin】和密码【admin】登录不上kettle资源库 当我们切换到我们配置的数据库使用超管账…

uniapp实现微信小程序调用云函数【vue3】

本人是从微信开发者工具写原生微信小程序一步一步走来&#xff0c;由于vue3框架的慢慢的步入前端市场&#xff0c;为了不被前端市场遗弃&#xff0c;果断从vue2开始步入vue3的学习&#xff0c;本人习惯在在HBuilder X写uniapp的项目&#xff0c;过去uniapp默认vue2框架&#xf…

注册北京个体工商户条件和办理时间

在北京这座充满活力的城市中&#xff0c;每天都有无数的创业者怀揣着梦想&#xff0c;踏上创业之路。然而&#xff0c;对于许多初次接触企业注册的人来说&#xff0c;往往对注册流程和时间感到困惑。特别是选择代理服务时&#xff0c;更希望了解一个大概的时间范围。那么&#…

WHAT - 容器化系列(二)- docker

目录 一、前言二、Docker镜像&#xff1a;可运行软件包三、Docker容器&#xff1a;可执行环境四、容器和镜像的关系五、创建镜像的过程5.1 编写Dockerfile5.2 构建Docker镜像5.3 查看构建的镜像5.4 运行Docker容器5.5 验证容器运行状态5.6 推送镜像到镜像仓库&#xff08;可选&…

【案例实操】银河麒麟桌面操作系统实例分享,V10SP1重启后网卡错乱解决方法

1.问题现象 8 个网口&#xff0c; 命名从 eth1 开始到 eth8。 目前在系统 grub 里面加了 net.ifnames0 biosdevname0 参数&#xff0c; 然后在 udev 规则中加了一条固定网卡和硬件 pci 设备号的规则文件。 最后在 rc.local 中加了两条重新安装网卡驱动的命令&#xff08; rmmod…