7-7 静静的推荐

news2024/10/2 12:28:48

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

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

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

输出格式:

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

输入样例:

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 人进入推荐名单。


我对样例的解释:

先对数据排一下序,按照天梯赛分数递增

//pat分数线90

169 91
175 88
175 0
175 90
189 0
189 0
189 95
189 89

203 0
256 100

我的思路是给已经选走的人做标记。

首先得分低于175的直接就不考虑了,所以在输入的时候可以直接标记,相当于被选走了;

然后我们要最多能向企业推荐的学生人数

在一个批次中,当我们选了某一个分数的学生后,比如175分;但是还有学生得了175分,只有当这个学生的pat分数超过分数线,才能一起被选走。

我们在第一个批次中将这种有一样分数的学生全部选走,这样在剩下的批次中选择的都是分数不一样的学生,而且不用再考虑pat分数。

输入时的选择:

169 91        被选走,加标记
175 88
175 0
175 90
189 0
189 0
189 95
189 89

203 0
256 100

第一批:

169 91     
175 88
175 0 *          *表示第一批选走的人
175 90 *
189 0 *
189 0
189 95 *
189 89

203 0 *
256 100 *

第二批:

169 91     
175 88 **          **表示第二批选走的人
175 0 *   
175 90 *
189 0 *

189 0  *          在这里其实选189 0和189 89没区别,在现实中肯定是选189 89
189 95 *
189 89 

203 0 *
256 100 *

但是部分正确QAQ 

代码:(部分正确)

#include<iostream>
#include<algorithm>
using namespace std;

typedef struct List {
    int score;
    int PATscore;
    int flag;
};

List list[100000];


bool cmp(List l1, List l2) {
    return l1.score < l2.score;
}

int main() {
    int count = 0, percount = 0;
    int n, k, s;
    cin >> n >> k >> s;

    int one, two;
    for (int i = 0; i < n; i++) {
        cin >> one >> two;

        list[i].score = one;
        list[i].PATscore = two;
        if (one < 175) {
            list[i].flag = 1;
        }
        else {
            list[i].flag = 0;
        }
    }
    int array[300];
    sort(list,list+n,cmp);
    

    while (k--) {
        percount = 0;
        fill(array, array + 300, 0);

        for (int i = 0; i < n; i++) {
            if (list[i].flag == 0) {
                if (array[list[i].score] == 0) {
                    array[list[i].score] = 1;
                    list[i].flag = 1;
                    percount++;
                }
                else {
                    if (list[i].PATscore >= 90) {
                        list[i].flag = 1;
                        percount++;
                    }
                }

            }
        }
        if (percount == 0) {
            break;
        }
        else {
            count += percount;
        }
    }

    cout << count;

    return 0;
}

别人的代码:

PTA L1-088 静静的推荐

#include <iostream>
#include <algorithm>
#include <set>
#include <queue>
		
using namespace std;
// - - - - - - - - -
int main()
{		
	int ans = 0;
	int n, k, ss;
	cin >> n >> k >> ss;
	priority_queue<int> qu[300];
	set<int>s;
	for(int i = 1; i <= n; i ++)
	{	
		int s1, s2;
		cin >> s1 >> s2;
		if(s1 < 175) continue;
		if(s2 >= ss)
		{
			ans ++;
			continue;
		} 
		qu[s1].push(s2);
		s.insert(s1);
	}	


	while(k --)
	{	
		for(auto it:s)
		{
			if(qu[it].empty())
				continue;
			ans ++;
			qu[it].pop();
		}
	}	
	
	cout << ans << endl;
	return 0;
} 		

堆排序,建初始堆以及优先队列(priority_queue)

C++-STL-set的使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

入职软件测试一年多,薪资正常应该有多少?

软件测试这个行业我见过工作5年依然是初级水平的功能测试&#xff0c;拿着不到1W的薪资&#xff0c;也见过1年时间达到高级自动化水平的大牛学霸&#xff01;拿着25K的薪资。 影响你薪资的有两点&#xff01; 一、你的技术水平高低直接决定你薪资的多少&#xff0c;工作时间长…

谷粒学院——Day14【首页课程和名师功能】

❤ 作者主页&#xff1a;Java技术一点通的博客 ❀ 个人介绍&#xff1a;大家好&#xff0c;我是Java技术一点通&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 记得关注、点赞、收藏、评论⭐️⭐️⭐️ &#x1f4e3; 认真学习&#xff0c;共同进步&#xff01;&am…

数字硬件建模SystemVerilog-组合逻辑建模(4)组合逻辑决策优先级

数字门级电路可分为两大类&#xff1a;组合逻辑和时序逻辑。锁存器是组合逻辑和时序逻辑的一个交叉点&#xff0c;在后面会作为单独的主题处理。组合逻辑描述了门级电路&#xff0c;其中逻辑块的输出直接反映到该块的输入值的组合&#xff0c;例如&#xff0c;双输入AND门的输出…

四点流程做好商机管理

企业想做好商机管理&#xff0c;仅凭员工是做不到的&#xff0c;借助CRM销售管理系统是比较明智的选择。接下来小编从客户信息管理、业务进程跟踪、设置提醒、销售漏斗等方面讲讲企业如何做好商机管理。 只有提高商机的转化率&#xff0c;企业的利润才会增长。想做好商机管理&…

MySQL 索引事务 · 讨论适合索引的数据结构 · N叉搜索树 · B+树 · 聚簇索引与非聚簇索引 · 事务的四个核心特性

一、索引1.1 概念1.2 作用1.3 讨论-如何提高查询的速度合适的数据结构&#xff1a;二叉搜索树AVL 树红黑树哈希表以上数据结构的问题&#xff1a;N 叉搜索树B 树B 树1.4 索引的使用场景1.5 索引的使用1.6 聚簇索引与非聚簇索引聚簇索引非聚簇索引1.7 索引 - 小结二、事务2.1 为…

小程序-会议OA项目-首页

目录 一&#xff0c;flex弹性布局 什么是flex布局&#xff1f; flex属性 flex-direction属性 学习地址&#xff1a; OA项目搭建以及flex布局演示 二&#xff0c;轮播图--组件的使用 1.先去官方文档中查看轮播图组件如何使 2.在开发工具中查看演示及修改代码 3. 使用mock…

异步通信技术AJAX | 基于JSON、XML的数据交换

目录 一&#xff1a;快速搞定AJAX&#xff08;第二篇&#xff09; 1、JS中如何创建和访问JSON对象 2、基于JSON的数据交换&#xff08;重点&#xff09; 3、基于XML的数据交换&#xff08;了解&#xff09; 一&#xff1a;快速搞定AJAX&#xff08;第二篇&#xff09; 1、…

-source1.5中不支持diamond运算符解决办法

写了几年代码了&#xff0c; 回到最初了遇到了bug了&#xff0c;没有仔细思考&#xff0c;以为很容易&#xff0c;起始走到了误区&#xff0c;有种打了一辈子鹰&#xff0c;最后被麻雀啄了眼 de 感觉 首先来看一下我们的错误信息&#xff0c;如下&#xff1a; [ERROR] Failed…

相机标定笔记(2) -- 标定实践

标定板 为什么需要标定板? 相机标定的第一篇笔记中提到了相机标定所使用的模型&#xff0c;标定算法中我们需要一些可靠的样本点&#xff0c;这些样本点由世界坐标系中的3D点和其在图像上的2D像点组成。用这些2D和3D点对来求解标定参数。为了构建更高精度的3D和2D点&#xff0…

对于系统架构来说,要么进化,要么死亡

在亚马逊云科技年度re:Invent&#xff0c;亚马逊首席技术官Dr. Werner Vogels的主题演讲历来涵盖大量科学和技术领域&#xff0c;今年的演讲也不例外&#xff0c;座无虚席。现在&#xff0c;亚马逊云科技 2022 re:Invent 中国区 recap 正式也开始了&#xff0c;欢迎大家积极参与…

单例模式之饿汉模式懒汉模式

前言 单例模式能保证某个类在程序中只存在唯一一份实例&#xff0c;而不会创建出多个实例&#xff0c;比如 JDBC 中的 DataSource 实例就只需要一个。单例模式具体的实现方式有"饿汉" 和 "懒汉" 两种。 1.饿汉模式&#xff08;类加载的同时创建实例&…

SOLIDWORKS装配体如何快速导出BOM丨慧德敏学

BOM作为产品数据的组成部分&#xff0c;它的重要性不言而喻。采购需要BOM、成本核算需要BOM、领料加工和装配需要BOM、录入ERP需要BOM……可以说&#xff0c;BOM与图纸同样重要&#xff0c;有些产品&#xff0c;可以没有图纸&#xff0c;但是不能没有BOM。借助SOLIDWORKS BOM插…

带你打开C语言的大门

最近有刚开始学习编程的同学问我&#xff1a;“C语言是什么&#xff1f;C语言是怎么来的&#xff1f;C语言用来干什么&#xff1f;”。对&#xff0c;在学习C语言之前&#xff0c;首先了解C语言的发展例程&#xff0c;这应该是每一个刚刚开始学习C语言的人应该了解的&#xff0…

什么是"文件表项"

从Linux的层次角度来说&#xff0c;在用户空间是存在这样的概念的&#xff0c;这个概念是存在内核空间的&#xff0c;而且是针对打开的文件的&#xff01; 内核用三种数据结构来描述一个打开的文件。 数据结构一: 文件描述符表(descriptor table): 每个进程都有它独立的描述符表…

【代码调试】《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》

论文地址&#xff1a;https://arxiv.org/pdf/2103.05950.pdf 代码地址&#xff1a;https://github.com/megvii-research/FSCE 论文阅读&#xff1a;https://blog.csdn.net/qiankendeNMY/article/details/128390284 我的配置&#xff1a; Python &#xff1a;3.8(ubuntu18.04) …

小程序发布体验版流程

一、微信开发者工具操作 1. 点击 工具 -> 上传&#xff08;或 直接点击右上角“上传”按钮&#xff09; 【注意】 如果使用的测试 appid 则【上传】按钮不能点击&#xff0c;必须使用真实 appid 2. 如果之前有发布过体验版&#xff0c;会提示继续操作将会覆盖之前的体验版…

MyBatisPlus ---- 基本CRUD

MyBatisPlus ---- 基本CRUD1. BaseMapper2. 插入3. 删除a>通过id删除记录b>通过id批量删除记录c>通过map条件删除记录4. 修改5. 查询a>根据id查询用户信息b>根据多个id查询多个用户信息c>通过map条件查询用户信息d>查询所有数据6. 通用Servicea>IServi…

RK3588平台开发系列讲解(Display篇)开机视频的设置

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、开机视频功能介绍二、使用方法2.1、开启与关闭2.2、视频放置位置2.3、编译结果2.4、视频素材要求2.5、参数控制说明沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍RK3588平台开机视频的使用方法…

ARM64内存虚拟化分析(7)stage2异常处理

当虚拟机访问内存或虚拟机访问寄存器时&#xff0c;由于并没有分配真实的物理地址&#xff0c;并没有建立stage2映射&#xff0c;因此这两种情况会产生stage2异常处理&#xff0c;其中第一种情况为真实的stage2缺页&#xff0c;第二种情况为MMIO处理。同时如果在stage2产生外部…

零膨胀负二项回归案例分析

零膨胀负二项回归分析 计数研究模型中&#xff0c;常用泊松回归模型&#xff0c;但泊松回归模型理论上是要求平均值与标准差相等&#xff0c;如果不满足&#xff0c;则可使用负二项回归模型&#xff0c;负二项回归放宽了平均值标准差这一理论假定。 在实际研究中&#xff0c;…