这个题思路也比较简单,利用两次sort函数进行排序,定义两个不同的cmp函数;
但是在确定每个安全指数的预测正确次数(ceita[i].sum)时,使用两次for循环会直接超时,然后就把它改成代码中的一大段while代码,Debug了很长时间才通过:
主要是找到ceita[i].sum的规律,当ceita[i].y逐渐递减(无重复),如示例一,会有如下规律
1. ceita[1].sum可以直接遍历求出;
2. 若ceita[i].result == 1,则ceita[i].result = ceita[i-1].result + 1;
3. 若ceita[i].result == 0,则ceita[i].result = ceita[i-1].result - 1;

可恶的是,如果有重复的ceita[i].y,那么

  1. 接下来的几个安全指数的result都会影响当前的sum
    while (ceita[i].y == ceita[j].y )
  2. 并且这些相同的安全指数共用同一个sum值;
    while(i < j - 1)
    写代码前先分好类就会好写很多。
#include<bits/stdc++.h>using namespace std;
struct Ceita{int y;int result;int sum;
};bool cmp1(Ceita a,Ceita b){return a.y  > b.y;
}bool cmp2(Ceita a,Ceita b){if(a.sum == b.sum) return a.y >b.y ;else return a.sum > b.sum;
}int main(){int m;scanf("%d",&m);Ceita ceita[m];for(int i = 0; i < m; i++){scanf("%d %d",&ceita[i].y,&ceita[i].result);ceita[i].sum =0;}sort(ceita,ceita+m,cmp1);for (int j = 0;j < m; j++){if((ceita[j].y  < ceita[0].y  && ceita[j].result  == 0 )||(ceita[j].y  >= ceita[0].y  && ceita[j].result  == 1 )){ceita[0].sum ++;}}int i = 0;int j = 1;while(i < m && j < m){j = i + 1 ;while (ceita[i].y == ceita[j].y ){if(j == i + 1){if(ceita[i].result == 1){ceita[i].sum = ceita[i-1].sum + 1;}else{ceita[i].sum = ceita[i-1].sum - 1;}}if(ceita[j].result == 1){ceita[i].sum ++;}else{ceita[i].sum --;}j++;}while(i < j - 1){ceita[++i].sum = ceita[i-1].sum;} i++;if(ceita[i].result == 1){ceita[i].sum = ceita[i-1].sum + 1;}else{ceita[i].sum = ceita[i-1].sum - 1;}}  sort(ceita,ceita+m,cmp2);printf("%d",ceita[0].y);return 0;
}

CCF2020122-期末预测之最_佳阈值相关推荐

  1. CCF202012-2 期末预测之最优阈值

    数据也就200个,不算大. 于是先试一下暴力枚举,得了70分...... 显然题目数据没那么简单,应该有很大的优化部分,比如对阈值进行排序或是选用更优秀的数据结构和算法,都是可以的. 也可以排序后分别 ...

  2. CCF-2020-12-2 期末预测之最佳阈值(低俗题)-你留的眼泪,我来帮你拭去~~~

    CCF-2020-12-2 写在前面 我们看看题目肿么说! 初心,第一想法 代码和运行结果如下 前缀和才是这个题目的真正考点 我们理解一下前缀和 代码和运行结果如下 哎,反正我今天是低俗了一把 这都是 ...

  3. CCF CSP202012-2期末预测之最佳阈值

    CCF CSP202012-2期末预测之最佳阈值 题目背景 考虑到安全指数是一个较大范围内的整数.小菜很可能搞不清楚自己是否真的安全,顿顿决定设置一个阈值 θ,以便将安全指数 y 转化为一个具体的预测 ...

  4. CSP202012-2 期末预测之最佳阈值(100分)【序列处理】

    试题编号: 202012-2 试题名称: 期末预测之最佳阈值 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 样例1输入 6 0 0 1 0 1 1 3 1 5 1 7 1 样例1输出 ...

  5. @3-2 CCF 2020-12-2 期末预测之最佳阈值

    期末预测之最佳阈值 题目描述 输入与输出 样例 源代码 关于这题 题目描述 输入与输出 样例 源代码 #include<iostream> #include<algorithm> ...

  6. ccf-csp认证期末预测之最佳阈值(2020年12月13日)

    期末预测之最佳阈值 题目描述 具体来说,顿顿评估了

  7. ccf-csp认证2020-12-2期末预测之最佳阈值: 一种简单解法

    ccf-csp认证2020-12-2期末预测之最佳阈值: 一种简单解法 期末预测之最佳阈值 题目描述 输入输出格式 样例及解释 数据提示 解题思路 代码 期末预测之最佳阈值 自己的第一篇博客.已经大三 ...

  8. 第21次CCF计算机软件能力认证【期末预测之最佳阈值】【期末预测之安全指数】

    期末预测之安全指数 题目描述 首先,顿顿选取了如"课堂表现"."自习时长"."作业得分"."社团活动参与度"等

  9. CSP:CSP认证考试:202012-1(期末预测之安全指数)满分答案,Java版

    CSP:CSP认证考试:202012-1(期末预测之安全指数)满分答案,Java版 一.题目: 二.Java满分答案 import java.util.Scanner;public class Mai ...

最新文章

  1. 安全审计产品发展现状与趋势分析
  2. Grub及MBR修复
  3. 从零开始玩人工智能-人脸 API-03
  4. 8-13 刷题 复习 知识点集合
  5. Python中深拷贝与浅拷贝的区别?
  6. 渗透测试技巧之Redis漏洞利用总结
  7. CentOS7的/tmp目录自动清理规则(转)
  8. 计算机常见屏幕英语语句,计算机常见屏幕英语
  9. 微信知识付费小程序博客源码(带299条数据)
  10. function与感叹号
  11. attachEvent和addEventListener详解
  12. Arcpy实现dem数据主河网自动提取
  13. 三维空间内点到直线的距离计算公式
  14. AVR单片机(ATmega128)单片机运算乘除法大约所需时间
  15. 三维校园(三维虚拟校园)的使用体验
  16. Autosar配置CAN时间同步模块笔记
  17. CVPR2019目标检测论文汇总
  18. 手机通过IPV6访问电脑共享文件
  19. eclipse快捷键使用以及一些小机灵
  20. 《平衡掌控者 游戏数值战斗设计》学习笔记(二)人物基础属性设计

热门文章

  1. Delphi系统变量:IsMultiThread对MM的影响
  2. 关于添加msvcr120d.dll后0xc000007b的错误解决办法
  3. Kaggle数据集强势分析“绝地求生”,攻略吃鸡!(给我的智障朋友们找的吃鸡攻略)
  4. oppo锁频段_oppo手机这些隐藏功能,你可能不知道!
  5. 华为云推出业界首个基于ARM框架的云手机解决方案
  6. JavaScript:数组对象去重的几种方法
  7. 在开发中沉侵式效果遇到类似华为手机虚拟按键一系列问题的解决
  8. 计算机图形学 | 探秘造型技术
  9. 找不到“本地策略”,没有“本地策略”的解决办法
  10. unity的垂直同步VSync