题目是CCF的2020-12-2 的《期末预测之最佳阈值》,还有就是为什么我把M定义成100000的时候,就无法在VS2013上运行,会直接出现请按任意键继续。
#include <stdio.h>
#define M 10000
int main()
{
int y[M], result[M], m, num[M] = {0}; // num是用来统计每个阈值的正确情况。
scanf("%d", &m);
int i, j;
//输入 m个同学的安全指数y与挂科情况result
for (i = 0; i < m; i++){
scanf("%d %d", &y[i], &result[i]);
}
//将第i个阈值y[i]分别和 m个同学的安全指数相比较。
for (i = 0; i < m; i++){
for (j = 0; j < m; j++){
if (y[j] >= y[i] && result[j] == 1){ //若安全指数大于等于阈值,并且result=1表明预测正确一次,让num[i]++,用num[i]来确定i个阈值的正确次数。
num[i]++;
}
else{
if (y[j] < y[i] && result[j] == 0){ ////若安全指数小于阈值,并且result=0表明预测正确一次,
num[i]++;
}
}
}
}
int max = num[0], k = 0;
for (i = 0; i < m; i++){
if (max <= num[i]){
max = num[i]; //找出num[i]里面那个阈值预测得最多。并记录下对应的i。
k = i;
}
}
printf("%d", y[k]);
return 0;
}
你可以参考如下链接:
CCF-2020-12-2 期末预测之最佳阈值(低俗题)-你留的眼泪,我来帮你拭去~~~_あなたの可愛い41-CSDN博客 CCF-2020-12-2写在前面我们看看题目肿么说!初心,第一想法代码和运行结果如下前缀和才是这个题目的真正考点我们理解一下前缀和代码和运行结果如下哎,反正我今天是低俗了一把这都是为了拭去你去年12月流下的泪水呀!谢谢大家看我的博客!!!写在前面去年的12月如期进行了CCF的第21次认证,很多同学一直都对第二题有着疑惑,为什么只能拿70分呢???很多同学哭着走出了考场,因为前两题拿170分意味着没有达到200分的毕业要求!(后面不好骗分了呀!)到底是肿么回事呢?今天,就让我们一起走进科学,探索一 https://blog.csdn.net/qq_42136832/article/details/112544430
CCF 2020-12-2 期末预测之最佳阈值_夏末秋也凉的博客-CSDN博客 题目背景考虑到安全指数是一个较大范围内的整数、小菜很可能搞不清楚自己是否真的安全,顿顿决定设置一个阈值θ,以便将安全指数y转化为一个具体的预测结果——“会挂科”或“不会挂科”。因为安全指数越高表明小菜同学挂科的可能性越低,所以当y≥θ时,顿顿会预测小菜这学期很安全、不会挂科;反之若y<θ,顿顿就会劝诫小菜:“你期末要挂科了,勿谓言之不预也。”那么这个阈值该如何设定呢?顿顿准备从过往中寻找答案。题目描述具体来说,顿顿评估了m位同学上学期的安全指数,其中第i(1≤i≤m)位同... https://blog.csdn.net/qq_45964225/article/details/112555998
如果对你有帮助,可以给我个采纳吗,谢谢!! 点击我这个回答右上方的【采纳】按钮