静静的推荐(2022天梯赛L1-8) 给定全体参赛学生的成绩和他们的 PAT 考试成绩,请你帮静静姐算一算,她最多能向企业推荐多少学生?

天梯赛结束后,某企业的人力资源部希望组委会能推荐一批优秀的学生,这个整理推荐名单的任务就由静静姐负责。企业接受推荐的流程是这样的:

  • 只考虑得分不低于 175 分的学生;
  • 一共接受 K 批次的推荐名单;
  • 同一批推荐名单上的学生的成绩原则上应严格递增;
  • 如果有的学生天梯赛成绩虽然与前一个人相同,但其参加过 PAT 考试,且成绩达到了该企业的面试分数线,则也可以接受。

给定全体参赛学生的成绩和他们的 PAT 考试成绩,请你帮静静姐算一算,她最多能向企业推荐多少学生?

输入格式:

输入第一行给出 3 个正整数:N(≤105)为参赛学生人数,K(≤5×103)为企业接受的推荐批次,S(≤100)为该企业的 PAT 面试分数线。

随后 N 行,每行给出两个分数,依次为一位学生的天梯赛分数(最高分 290)和 PAT 分数(最高分 100)。

输出格式:

在一行中输出静静姐最多能向企业推荐的学生人数。

输入样例:

10 2 90
203 0
169 91
175 88
175 0
175 90
189 0
189 0
189 95
189 89
256 100

输出样例:

8

样例解释:

第一批可以选择 175、189、203、256 这四个分数的学生各一名,此外 175 分 PAT 分数达到 90 分的学生和 189 分 PAT 分数达到 95 分的学生可以额外进入名单。第二批就只剩下 175、189 两个分数的学生各一名可以进入名单了。最终一共 8 人进入推荐名单。

以下是代码

#include<stdio.h>
enum
{
	MG=0, //没过为0 
	GL=1, //过了为1 
};
void shuru(int,int[][2],int) ; 
int qiu_tjrs(int zpc,int rs[][2]){
	int fs,tjrs=0;
	for(fs=0; fs< 290-175+1 ; fs++)
	{
		// 测试用例 printf("%d %d %d\n",fs+175,rs[fs][GL],rs[fs][MG]);
		tjrs+=rs[fs][GL];
		tjrs+=(rs[fs][MG]>zpc) ? zpc : rs[fs][MG];
	}
	return tjrs;
}
//输入次数,分数段的人数,是否参加天梯赛 
int main(){
	int xsrs,zpc, patfs; //学生人数,总批次 ,PAT分数 
	scanf("%d %d %d",&xsrs,&zpc,&patfs);
	int renshu[290-175+1][2]={ 0 }; 
	//二维数组:得分   PAT参没参加 
	shuru(xsrs,renshu,patfs); //输入 
	printf("%d\n",qiu_tjrs(zpc,renshu));
	//求_推荐人数 (总批次,人数)
	return 0;
} 
void shuru(int n, int rs[][2],int s){ 
//n是输入多少次(参赛学生人数),rs是分段的人数 
	while(n-->0){
		int ttsf,patf; //天梯赛分,PAT分 
		scanf("%d%d",&ttsf,&patf), ttsf-=175;
		if(ttsf <0){
			continue;
		}
		rs[ttsf][patf>=s]++;
		 
	}
}

这里解释一下代码:

  1. 首先,我们定义了两个枚举值 MGGL,分别表示没过和过了。这样,我们可以使用这些标志来记录学生是否通过了 PAT 考试。
  2. shuru 函数用于输入学生的信息。它接受三个参数:n 表示输入多少次(即参赛学生人数),rs 是一个二维数组,用于存储分段的人数,s 表示企业的 PAT 面试分数线。在这个函数中,我们遍历每个学生的信息,将其天梯赛分数减去 175,然后根据 PAT 分数是否达到面试分数线,更新 rs 数组中的计数。
  3. qiu_tjrs 函数计算推荐人数。它遍历了天梯赛分数的范围(从 175 到 290),累加了满足条件的学生人数。具体计算如下:
    • 首先,我们累加了通过天梯赛的学生人数。
    • 然后,对于每个天梯赛分数,我们还考虑了没有通过天梯赛但通过了 PAT 考试的学生。如果某个学生的天梯赛成绩超过了企业的面试分数线,那么也可以被推荐。我们使用 zpc(总批次)来限制每个分数段的推荐人数,以确保严格递增的条件。
  4. 最后,在 main 函数中,我们读取输入,调用 shuru 输入学生信息,然后调用 qiu_tjrs 计算最终的推荐人数。

这段代码的巧妙之处在于使用了两个数组 renshu 来计数,分别记录天梯赛分数和 PAT 分数的情况。通过遍历分数范围,同时考虑天梯赛分数和 PAT 分数,实现了推荐人数的计算。

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Louis Maos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值