栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

CCF认证 2020-12 期末预测之最 佳阈值(100分)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CCF认证 2020-12 期末预测之最 佳阈值(100分)

发现最近几次的考试中,第二题基本上都用到了前缀和的思想,本题也是需要用到前缀和思想才能拿到满分,如果用暴力的话,就只能拿到70分。

#include 
#include 
#include 
using namespace std;

const int N = 1e5+1;

int m;

int res;

int y, result;

int Max = 0;

pair pr[N];

int sum[N] = {0};

set st;


int main() {
	scanf("%d",&m);
	
	for(int i = 1; i <= m; ++i) {
		
		scanf("%d%d",&y,&result);
		
		pr[i] = make_pair(y,result);
	}
	
	sort(pr,pr+m+1); //排序
	
	//求挂科情况的前缀和 
	for(int i = 1; i <= m; ++i) sum[i] = sum[i-1] + pr[i].second; 
	
	for(int i = 1; i <=m; ++i) {
		int a = pr[i].first; //选取阈值
		
		if(st.count(a)) continue; //利用set进行去重
		st.insert(a);
		
		int count1 = sum[m] - sum[i-1];
		int count0 = i-1 - sum[i-1];
		int count = count1 + count0; //总共的预测正确的数
		
		if(count >= Max) {
			Max = count;
			
			res = a;
		} 
		
	}
	
	printf("%d",res);
	
	return 0;
}

大家多学习一些C++的STL大有好处,代码会非常简洁明了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/433332.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号