CCF期末预测之最佳阈值

2023-05-16

【题目背景】

考虑到安全指数是一个较大范围内的整数、小菜很可能搞不清楚自己是否真的安全,顿顿决定设置一个阈 Θ,以便将安全指数 y转化为一个具体的预测结果——“会挂科”或“不会挂科”。
因为安全指数越高表明小菜同学挂科的可能性越低,所以当 y ≥ 0 时,顿顿会预测小菜这学期很安全、不会挂科;反之若 y < Θ,顿顿就会劝诚小菜:“你期末要挂科了,勿谓言之不预也。”
那么这个阚值该如何设定呢?顿顿准备从过往中寻找答案。

【问题描述】

具体来说,顿顿评估了m位同学上学期的安全指数,其中第 i( 1 ≤ i ≤ m)位同学的安全指数为 y,是一个 [0,108] 范围内的整数;同时,该同学上学期的挂科情况记作 resulti ∈ 0,1,其中 0 表示挂科、1 表示未挂科。
相应地,顿顿用 predictΘ(y)表示根据阈值 Θ 将安全指数 y 转化为的具体预测结果。
如果predicte(y) 与 resultj 相同,则说明阀值为 Θ 时顿顿对第 j 位同学是否挂科预测正确;不同则说明预测错误。

在这里插入图片描述

最后,顿顿设计了如下公式来计算最佳阈值 Θ*:
在这里插入图片描述

该公式亦可等价地表述为如下规则:
1. 最佳阀值仅在 yi 中选取,即与某位同学的安全指数相同;
2. 按照该阀值对这 m 位同学上学期的挂科情况进行预测,预测正确的次数最多(即准确率最高);
3. 多个阈值均可以达到最高准确率时,选取其中最大的。

【输入形式】

从标准输入读入数据。

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

接下来输入 m 行,其中第 i(1 ≤ i ≤ m)行包括用空格分隔的两个整数 yi 和resulti,含义如上文所述。

【输出形式】

输出到标准输出。

输出一个整数,表示最佳阈值 Θ*。

【样例输入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% 的测试数据保证, m≤200;

对于全部的测试数据保证, 2 ≤ m ≤ 105。

题目分析:该题实际上就是求大于某数且预测不挂科与小于该数且预测挂科的数的个数和。

先对所有数从小到大进行排序,则在某数之前的所有数,若预测为0则预测正确,在该数及之后的所有数若预测为1则预测正确。此时一个数的准确率sum就可以分为两部分,即该数之前的准确数pre加该数及之后的准确数after。

当存在连续相等的数y时,该数的sum不变,但是到下一个不相等的数t之前,要对y进行记录,若y预测为0,对t而言pre+1,若y预测为1,对t而言after-1。这时可以设置两个中间变量midpre记录预测为0的y的个数,midafter记录预测为1的y的个数。所以t的pre=pre+midpre,after=after-midafter。

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
struct Q{
	int y,r;
};
bool cmp(Q s1,Q s2){//排序规则 
	if(s1.y!=s2.y){
		return s1.y<s2.y;	
	}
	return s1.r<s2.r;
}
int main(){
	int n,ma=0;//准确率最大为ma 
	cin>>n;
	Q a[n];
	int sum[n];//n个数分别的准确率 
	memset(sum,0,sizeof(sum));
	for(int i=0;i<n;i++){
		cin>>a[i].y>>a[i].r;
	}
    sort(a,a+n,cmp);//对n个数按从小到大排序 
	int pre=0,after=0,midpre=0,midafter=0;//pre是第i个数前面的准确数,after是第i个数后面的准确数
	//i的前一个数若多次出现,midpre记录该数对于i的准确数,midafter记录该数对于i的不准确数 
	for(int i=0;i<n;i++){//初始化第一个数的准确率 
		if(a[i].r==1){
			sum[0]++;
		}
	}
	after=sum[0];
	int sit=0;
	ma=sum[0];
	for(int i=1;i<n;i++){
		if(a[i-1].y<a[i].y){//若第i个数大于前一个数,pre+=midpre,after-=midafter
			if(a[i-1].r==0){
		        midpre+=1;
	        }
	        else if(a[i-1].r==1){
		        midafter+=1;
        	}
			pre+=midpre;
			after-=midafter;
			sum[i]=pre+after;//sum等于前面的准确数与后面的准确数之和 
			midpre=0,midafter=0;// 此时第i个数与前一个数不相等,minpre,midafter置为0 
		}
		else if(a[i-1].y==a[i].y){//若第i个数等于前一个数,sum应该不变,此时对midpre和midafter进行积累 
			if(a[i-1].r==0)
			midpre++;
			else if(a[i-1].r==1)
			midafter++;
			sum[i]=sum[i-1];
		}
		if(sum[i]>=ma){//找出准确值最大的 
			ma=sum[i];
			sit=i;
		}
	}
	cout<<a[sit].y;
	return 0;
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CCF期末预测之最佳阈值 的相关文章

  • CCF-CSP【202303-3 LDAP】C++

    CCF CSP 202303 3 LDAP C 43 43 CCF真题网址 第一次提交结果超时 只有20分 题目思路 我的思路较为简单 xff0c 即对于每个匹配表达式 xff0c 遍历N个用户 xff0c 验证是否匹配 对于每个表达式有两
  • CCF 201812-4 数据中心 Java

    一 题目 问题描述 试题编号 xff1a 201812 4试题名称 xff1a 数据中心时间限制 xff1a 1 0s内存限制 xff1a 512 0MB问题描述 xff1a 样例输入 4 5 1 1 2 3 1 3 4 1 4 5 2 3
  • 【CCF-CSP】 201604-4 游戏

    文章目录 一 题目二 解题1 题目2 代码3 提交结果 总结1 注意边界 一 题目 原题目链接 二 解题 1 题目 类似于迷宫问题 xff0c 假设有一个n行m列的矩阵 xff0c 其中的一些格子是障碍物 xff0c 机器人从 xff08
  • CSP CCF: 202012-2 期末预测之最佳阈值 (C++)

    目录 题目来源题目描述解题过程完整代码 题目来源 链接 CCF 期末预测之最佳阈值 题目描述 解题过程 题目要求为选取合适的安全指数阈值 Theta xff0c 使得该阈值对这 m 位同学上学期的挂科情况进行预测 xff0c 预测正确的次数
  • ccf 画图

    问题描述 试题编号 xff1a 201409 2试题名称 xff1a 画图时间限制 xff1a 1 0s内存限制 xff1a 256 0MB问题描述 xff1a 问题描述 在一个定义了直角坐标系的纸上 xff0c 画一个 x1 y1 到 x
  • ccf认证的期刊和会议_ccf推荐AI、CV方向的国际学术期刊、会议

    写在前面 xff1a 本篇文章摘自公众号 算法攻城狮 中国计算机学会官方 https www ccf org cn 公布了十个领域的国际期刊及会议信息 xff0c 这十个领域分别为 xff1a 1 计算机体系结构 xff0f 高性能计算 x
  • C++ CCF真题----画图

    问题描述 用 ASCII 字符来画图是一件有趣的事情 xff0c 并形成了一门被称为 ASCII Art 的艺术 例如 xff0c 下图是用 ASCII 字符画出来的 CSPRO 字样 本题要求编程实现一个用 ASCII 字符来画图的程序
  • CCF CSP 2019-12-1 “报数” 解题思路及满分代码(C++11)

    文章目录 题目描述解题思路满分代码 题目描述 解题思路 题目比较简单 xff0c 需要搞清楚两个点 xff1a 跳过的数是7的倍数或含7的数 xff0c 即取余为0或各个位上有7的数n代表的是总共的报数个数 xff0c 跳过的数是不算的 下
  • CCF_Markdown(正则表达式)

    试题编号 xff1a 201703 3试题名称 xff1a Markdown时间限制 xff1a 1 0s内存限制 xff1a 256 0MB问题描述 xff1a 问题描述 Markdown 是一种很流行的轻量级标记语言 xff08 lig
  • 2020 CCF 非专业级别软件能力认证第一轮(CSP-S) 提高级 C++ 语言试题

    目录 一 选择题 xff1a 每题 2 分 xff0c 共 15 题 xff0c 30 分 在每小题给出的四个选项中 xff0c 只有一项是符合题目要求的 二 阅读程序 程序输入不超过数组或字符串定义的范围 xff1b 判断题正确填 3 x
  • ccf-csp 期末预测之最佳阈值

    期末预测之最佳阈值 在一开始使用了双重循环的做法 xff0c 没有考虑时间复杂度的问题 xff0c 最终虽然结果正确了 xff0c 但是提交后显示运行时间超时 xff0c 看来复杂度为n2并不满足题目的要求 之后便开始想办法降低复杂度 xf
  • 2014-09-2 ccf画图 c++

    span class token comment 2014 09 2 span span class token comment 画图 span span class token macro property span class toke
  • 计算机图形学期刊影响因子,计算机图形学 | CCF推荐期刊专刊信息2条

    原标题 xff1a 计算机图形学 CCF推荐期刊专刊信息2条 图形学与多媒体 Computers amp Graphics Call for papers Shape Modelling International SMI 2019 全文截
  • CCF 201909-4 推荐系统

    include lt cstdio gt include lt set gt include lt unordered map gt include lt algorithm gt using namespace std typedef l
  • ccf-csp认证期末预测之最佳阈值(2020年12月13日)

    期末预测之最佳阈值 题目描述 具体来说 顿顿评估了 位同学上学期的安全指数 其中第 1 位同学的安全指数为 是一个 0 108 范围内的整数 同时 该同学上学期的挂科情况记作 0 1 其中 0 表示挂科 1 表示未挂科 相应地 顿顿用 表示
  • CCF CSP 中国计算机学会-CCF计算机软件能力认证(计算机水平测试)-简介-详情

    CCF gt gt 简介 中国计算机学会 英文名为China Computer Federation 简称CCF 是由从事计算机及相关科学技术领域的科研 教育 开发 生产 管理 应用和服务的个人及单位自愿结成 依法登记成立的全国性 学术性
  • CCF/CSP 201409-3 字符串匹配(满分题解Java版)

    此题虽然放在了第三题 但是如果对Java的API了解的比较好的同学 解这道题一点都不难 比前几题都要简单一些 题目描述 官方题目地址 读题请点击 Java满分题解 import java util Scanner next 与 nextLi
  • csp试题1:小明种苹果

    csp试题1 小明种苹果 题目 分析 代码 总结 题目 题目描述 小明在他的果园里种了一些苹果树 为了保证苹果的品质 在种植过程中要进行若干轮疏果操作 也就是提前从树上把不好的苹果去掉 第一轮疏果操作开始前 小明记录了每棵树上苹果的个数 每
  • 第一次CCF CSP认证体验

    今天是我第一次参加CCF CSP认证 虽然这已经是第十二次CCF认证了 感觉题目有点难欸 前面两道题暴力写完 然后看了第三题 哇 简直难写 第四题看了看 数据1e5条边 不会做 就写了一个暴力 希望能过点数据 第五题感觉像是一个动态规划 完
  • 第十六次CCF认证模拟试题(201903-2):二十四点(Java完整版)

    最近在练习算法 觉得CCF的算法题都还不错 就做了一下子 试卷原题 Java版解法 import java util ArrayList import java util Scanner public class Main public s

随机推荐

  • week8_C 班长竞选(Kosaraju算法 SCC缩点)

    题目描述 大学班级选班长 xff0c N 个同学均可以发表意见 若意见为 A B 则表示 A 认为 B 合适 xff0c 意见具有传递性 xff0c 即 A 认为 B 合适 xff0c B 认为 C 合适 xff0c 则 A 也认为 C 合
  • week15实验 D_瑞瑞爱上字符串/F_东东:“来不及解释了,快上车!!”

    D 瑞瑞爱上字符串 题目 瑞瑞最近迷上了字符串 xff0c 因此决定出一个字符串的题 给定两个正整数 N K xff0c 考虑所有由 N 2 个 a 和 2 个 b 组成的字符串 xff0c 要求输出其中字典序第 K 小的 例如当 N 61
  • CSP-M4补题 A_TT数鸭子

    题目 这一天 xff0c TT因为疫情在家憋得难受 xff0c 在云吸猫一小时后 xff0c TT决定去附近自家的山头游玩 TT来到一个小湖边 xff0c 看到了许多在湖边嬉戏的鸭子 xff0c TT顿生羡慕 此时他发现每一只鸭子都不 一样
  • 第二道月模csp201604-3 路径解析

    题目 在操作系统中 xff0c 数据通常以文件的形式存储在文件系统中 文件系统一般采用层次化的组织形式 xff0c 由目录 xff08 或者文件夹 xff09 和文件构成 xff0c 形成一棵树的形状 文件有内容 xff0c 用于存储数据
  • 第三道月模csp201609-3炉石传说

    题目 炉石传说 xff1a 魔兽英雄传 xff08 Hearthstone Heroes of Warcraft xff0c 简称炉石传说 xff09 是暴雪娱乐开发的一款集换式卡牌游戏 xff08 如下图所示 xff09 游戏在一个战斗棋
  • 第四道月模csp201809-3 元素选择器

    题目背景 题目描述 输入输出 Input Output Sample Input Sample Output 数据规模和约定 思路分析 根据题意 xff0c 创建element结构体 xff0c 新建element类型数组e xff0c 用
  • Debian设置合上笔记本盖子不休眠

    序言正文 序言 在使用的debian的时候 xff0c 发现在哪都找不到设置合上笔记本盖子不做任何事情的选项 xff0c 不像Ubuntu可以在电源里设置 在这里介绍编辑Login Manager 的配置文件 xff08 logind co
  • 学生认证免费领取——使用阿里云服务器的Ubuntu版本,并进行图形化

    一 前言 我们学习和工作中经常需要使用Linux系统来跑程序 我们可以使用虚拟机装一个Ubuntu镜像 当然我们为了方便也可以使用阿里云的服务器 二 获取服务器 1 到阿里云官网 没有账号的同学注册一个就OK 2 搜索框搜索 学生优惠 3
  • Python Pyside/Pyqt 禁止拉伸窗体

    可能是搜索姿势不正确 xff0c 搜了半天没搜到正确答案 随手做个笔记 值可以写死 xff0c 但是一改UI又要重新改这 xff0c 太麻烦 xff0c 索性 加载UI文件时 def init self 对ui文件进行加载 self ui
  • Win10 编译运行Fortran77程序,开发环境搭建

    有个朋友说我讲的blas中的fortran语法有个地方不正确 xff0c 非说他自己的理解是对的 怎么肯能 xff0c f77都看了十几年了 拿出证据来才行 xff0c 朋友却说自己不知道怎么编译f77程序 好吧 xff0c 那还这么自信呀
  • C++ time(0)函数

    time 0 函数返回当前格林尼治标准时间与格林尼治标准时间1970年0分0秒的时间间隔 头文件 include lt ctime gt 问题 xff1a 得到当前时间 include lt iostream gt include lt c
  • 位运算左移、右移、按位取反

    目录 一 异或习题补充 1 260 只出现一次的数字 III 力扣 xff08 LeetCode xff09 二 位运算左移 1 概念 1 xff09 二进制形态 2 xff09 执行结果 3 xff09 负数左移的执行结果 4 xff09
  • 远程客户端无法连接到ubuntu

    检查SSH是否安装 xff1a ssh localhost 通过APT的安装命令非常方便 xff1a sudo apt install openssh server
  • 使用python读写内存–植物大战僵尸为例 pymem和tkinter

    使用python读写内存 植物大战僵尸为例 pymem和tkinter 废话不多 xff0c 直接上源代码 span class token keyword import span tkinter span class token keyw
  • Paramiko: Python使用paramiko连接主机报错“Authentication timeout”

    问题描述 xff1a 在用Python Paramiko库去连接主机时 始终无法连接 xff0c exception输出错误仅有 Authentication timeout connection 61 paramiko SSHClient
  • 流感传染

    题目描述 有一批易感人群住在网格状的宿舍区内 xff0c 宿舍区为n n的矩阵 xff0c 每个格点为一个房间 xff0c 房间里可能住人 xff0c 也可能空着 在第一天 xff0c 有些房间里的人得了流感 xff0c 以后每天 xff0
  • 获取B站某用户更多的关注数和粉丝数

    获取B站某用户更多的关注数和粉丝数 相关记录 一 前言 B 站最多只能翻 5 页用户的关注数和粉丝数 xff0c 如何能够看到更多呢 方法我也是从网上翻来的 xff0c 记载博客里 xff0c 算是我研究过这个话题了 二 需要的东西 关注数
  • HDU 1692 Destroy the Well of Life-卡时间-(枚举+剪枝)

    题意 xff1a 有n口井 xff0c 编号为1到n xff0c 打破第i口井需要p i 的能量 xff0c 但是只要井被打破里面的水会流到下一口井 xff0c 只要一口井的井水w i 多余一个上限l i 会自动打破 xff0c 求打破第n
  • 一.前言——人类是不是机器人

    一 前言 人类是不是机器人 随着时代的进步 xff0c 人工智能诞生了 又随着人工智能的进步 xff0c ChatGPT诞生了 xff0c 这不仅让我想出一个问题 xff1a 我们人类是不是机器人 xff1f ChatGPT xff0c 发
  • CCF期末预测之最佳阈值

    题目背景 考虑到安全指数是一个较大范围内的整数 小菜很可能搞不清楚自己是否真的安全 xff0c 顿顿决定设置一个阈 xff0c 以便将安全指数 y转化为一个具体的预测结果 会挂科 或 不会挂科 因为安全指数越高表明小菜同学挂科的可能性越低