CSP CCF: 202012-2 期末预测之最佳阈值 (C++)

2023-05-16

目录

  • 题目来源
  • 题目描述
  • 解题过程
  • 完整代码

题目来源

链接: CCF 期末预测之最佳阈值.

题目描述

题目描述
输入输出格式
样例一
样例二+子任务

解题过程

  1. 题目要求为选取合适的安全指数阈值 Θ \Theta Θ , 使得该阈值对这 m 位同学上学期的挂科情况进行预测,预测正确的次数最多
  2. 输入 m 位同学的安全指数 y i y_i yi r e s u l t i result_i resulti时,使用 map<int, pair<int, int> > y2result (意味着 {安全指数, <未通过人数, 通过人数> }, {…}, …)来存储不同安全指数的未通过和通过的人数。 此外,使用passNum、npassNum 分别记录 总的通过人数,总的未通过人数。
 map<int, pair<int, int>> y2result;
 int passNum = 0, npassNum = 0;  // 总的通过人数, 总的未通过人数
 for (int i = 1; i <= m; ++i) {
   int yi, resulti;
     cin>>yi>>resulti;

     if (y2result.count(yi) == 0) {  // 未记录过该安全指数时, 初始化一下
         y2result[yi].first = 0;
         y2result[yi].second = 0;
     }
     if (resulti == 1) {  // pass
         y2result[yi].second += 1;
         ++passNum;
     }
     else {              // not pass
         y2result[yi].first += 1;
         ++npassNum;
     }
 }
  1. 对于 Θ i \Theta_i Θi == y i y_i yi时, 假设有 curPassNum 个安全指数低于 y i y_i yi的同学通过考试, curNPassNum 个安全指数低于 y i y_i yi 的同学未通过了考试。那么当前预测正确的人数curAcc = curNPassNum + passNum - curPassNum

    因为C++ 的 map底层实现是按字典序来排序各元素的,所以下面在遍历 y i y_i yi (即 Θ i \Theta_i Θi)时,是从小到大遍历安全指数的。

int curPassNum = 0, curNPassNum = 0;
int bestTheta, int bestAccuracy = 0;
for (pair<const int, pair<int, int> > &m: y2result) {  
    pair<int, int> cur = m.second;

    int curAcc = curNPassNum + passNum - curPassNum ;
    if (curAcc >= bestAccuracy) {
        bestTheta = m.first;
        bestAccuracy = curAcc;
    }

    curNPassNum += cur.first;  // not pass
    curPassNum += cur.second;
}

完整代码

#include <iostream>
#include <map>

using namespace std;

int main() {
    int m;
    cin>>m;

    map<int, pair<int, int>> y2result;
    int passNum = 0, npassNum = 0;
    for (int i = 1; i <= m; ++i) {
        int yi, resulti;
        cin>>yi>>resulti;

        if (y2result.count(yi) == 0) {  // 未记录过该安全指数时, 初始化一下
            y2result[yi].first = 0;
            y2result[yi].second = 0;
        }
        if (resulti == 1) {  // pass
            y2result[yi].second += 1;
            ++passNum;
        }
        else {              // not pass
            y2result[yi].first += 1;
            ++npassNum;
        }
    }

    int curPassNum = 0, curNPassNum = 0;
    int bestTheta, int bestAccuracy = 0;
    for (pair<const int, pair<int, int> > &m: y2result) {
        pair<int, int> cur = m.second;

        int curAcc = curNPassNum + passNum - curPassNum ;
        if (curAcc >= bestAccuracy) {
            bestTheta = m.first;
            bestAccuracy = curAcc;
        }

        curNPassNum += cur.first;  // not pass
        curPassNum += cur.second;
    }

    cout<<bestTheta<<endl;

    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSP CCF: 202012-2 期末预测之最佳阈值 (C++) 的相关文章

  • ccf 游戏

    试题编号 xff1a 201604 4试题名称 xff1a 游戏时间限制 xff1a 1 0s内存限制 xff1a 256 0MB问题描述 xff1a 问题描述 小明在玩一个电脑游戏 xff0c 游戏在一个 n m的方格图上进行 xff0c
  • CCF-CSP考试介绍以及复习技巧指导

    CCF CSP考试时间及费用 时间一般是每年3 9 12月的中旬 xff0c 报名时间一般也是提前一个月 xff0c 不固定 非计算机协会会员300元 次 xff0c 会员180元 次 xff08 学生会员需缴纳50元 年的会费 xff09
  • ccf认证的期刊和会议_ccf推荐AI、CV方向的国际学术期刊、会议

    写在前面 xff1a 本篇文章摘自公众号 算法攻城狮 中国计算机学会官方 https www ccf org cn 公布了十个领域的国际期刊及会议信息 xff0c 这十个领域分别为 xff1a 1 计算机体系结构 xff0f 高性能计算 x
  • CCF CSP 2021-04-2 邻域均值 题解及满分代码(C++11)

    文章目录 题目描述问题分析70分解法满分解法 题目描述 现给定邻域参数 r 和阈值 t xff0c 试统计输入灰度图像中有多少像素处于较暗区域 输入格式 输入共 n 43 1 行 输入的第一行包含四个用空格分隔的正整数 n L r 和 t
  • CSP考试 2016年04月第3题 路径解析 C++实现

    表示本目录 xff0c 例如 d1 f1 指定的就是 d1 f1 如果有多个连续的 出现 xff0c 其效果等同于一个 绝对路径 xff1a 以 符号开头 xff0c 表示从根目录开始构建的路径 相对路径 xff1a 不以 符号开头 xff
  • csp 201312-4有趣的数

    题意 xff1a 问题描述 我们把一个数称为有趣的 xff0c 当且仅当 xff1a 1 它的数字只包含0 1 2 3 xff0c 且这四个数字都出现过至少一次 2 所有的0都出现在所有的1之前 xff0c 而所有的2都出现在所有的3之前
  • Week8 CSP-M2

    T1 HRZ的序列 题目 相较于咕咕东 xff0c 瑞神是个起早贪黑的好孩子 xff0c 今天早上瑞神起得很早 xff0c 刷B站时看到了一个序列aa xff0c 他对这个序列产生了浓厚的兴趣 他好奇是否存在一个数KK xff0c 使得一些
  • 2020 CCF 非专业级别软件能力认证第一轮(CSP-S) 提高级 C++ 语言试题

    目录 一 选择题 xff1a 每题 2 分 xff0c 共 15 题 xff0c 30 分 在每小题给出的四个选项中 xff0c 只有一项是符合题目要求的 二 阅读程序 程序输入不超过数组或字符串定义的范围 xff1b 判断题正确填 3 x
  • TT数鸭子-暴力(csp-t1模拟)

    题目 输入输出样例 xff1a 题解 xff1a 我们整个题就是使用暴力的方法进行运算 将每一只鸭子看作是十进制的数 xff0c 不断对每一位读取 xff08 采用对十整除和取余数的方法 xff09 我们对每一个鸭子都进行判断 如果满足这个
  • 计算机图形学期刊影响因子,计算机图形学 | CCF推荐期刊专刊信息2条

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

  • html+css+js手写练习-仿CCF注册和登录页面

    直接贴代码 xff1a lt DOCTYPE html gt lt html gt lt head gt lt meta charset 61 34 utf 8 34 gt lt title gt 中国计算机学会 注册 lt title g
  • 【CCF推荐专区】计算机类优质SCI&EI好刊,期刊质量高,部分期刊仅有少量版面

    x1f308 智能传感类 xff08 TOP xff09 CCF C类 期刊简介 IF 7 0 8 0 xff0c JCR1区 xff0c 中科院2 1区 检索情况 SCI amp EI 双检 xff0c 正刊 xff0c CCF C类 征
  • CSP-S 模拟52

    rank10 T1 平均数 二分答案 xff0c 让所有的数减去这个答案 xff0c 求前缀和 xff0c 然后验证子序列平均数比这个答案小的的个数是否等于K 只需要找前缀和的逆序对个数即可 xff08 归并排序 xff09 T2 涂色游戏
  • CSP-S 模拟测试57题解

    人生第一次A B层一块考rank2 xff0c 虽然说分差没几分 xff0c 但还是值得纪念 题解 xff1a T1 天空龙 xff1a 大神题 xff0c 因为我从不写快读也没有写考场注释的习惯 xff0c 所以不会做 xff0c 全hz
  • CCF/CSP 201312-1出现次数最多的数(满分题解Java版)

    CCF 考试 一定要刷历年真题 在提交代码的时候 一定不要把中文注释提交上去了 可能会编译报错 题目描述 201312 1出现次数最多的数 Java题解 import java util ArrayList import java util
  • CSP 202305-1 重复局面

    题目背景 国际象棋在对局时 同一局面连续或间断出现3次或3次以上 可由任意一方提出和棋 问题描述 国际象棋每一个局面可以用大小为 8 8 的字符数组来表示 其中每一位对应棋盘上的一个格子 六种棋子王 后 车 象 马 兵分别用字母 k q r
  • CCF-CSP 新生必读

    CCF软件能力认证 Certified Software Professional CSP CSP认证考什么 怎么考 1 认证概况 认证名称 计算机软件能力考试认证 简称软件能力认证 认证定义 软件能力包括软件的开发 测试 部署和运行维护能
  • CCF/CSP 201604-2 俄罗斯方块(满分题解Java版)

    此题 猛滴一看确实非常容易让人懵懵的 主要是题目描述的非常不清晰 很难让人能够透彻的理解 如果连题目都看不懂 那就不谈写出代码了 题目描述 官方题目描述 题目地址 题目解读 关键的是要理解题目 Java题解 import java util
  • CSP-J (NOIP普及组) 历年复赛真题考察内容(1998~2021)

    TZOJ题目分类 本博客原文地址 https www cnblogs com BobHuang p 14522022 html 其中 1 较简单题26题左右 2 动态规划17题 其中9题较好做 3 模拟 阅读题目将问题抽象建模写出程序 为1

随机推荐