PTA L2-046 天梯赛的赛场安排 (25 分)

天梯赛使用 OMS 监考系统,需要将参赛队员安排到系统中的虚拟赛场里,并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们,以便发放比赛账号。为了尽可能减少教练和监考的沟通负担,我们要求赛场的安排满足以下条件:

  • 每位监考老师负责的赛场里,队员人数不得超过赛场规定容量 C C C
  • 每位教练需要联系的监考人数尽可能少 —— 这里假设每所参赛学校只有一位负责联系的教练,且每个赛场的监考老师都不相同。

为此我们设计了多轮次排座算法,按照尚未安排赛场的队员人数从大到小的顺序,每一轮对当前未安排的人数最多的学校进行处理。记当前待处理的学校未安排人数为 n n n

  • 如果 n ≥ C n≥C nC,则新开一个赛场,将 C C C 位队员安排进去。剩下的人继续按人数规模排队,等待下一轮处理;
  • 如果 n < C n<C n<C,则寻找剩余空位数大于等于 n n n 的编号最小的赛场,将队员安排进去;
  • 如果 n < C n<C n<C,且找不到任何非空的、剩余空位数大于等于 n n n 的赛场了,则新开一个赛场,将队员安排进去。

由于近年来天梯赛的参赛人数快速增长,2023年超过了 480 所学校 1.6 万人,所以我们必须写个程序来处理赛场安排问题。

输入格式:

输入第一行给出两个正整数 N N N C C C,分别为参赛学校数量和每个赛场的规定容量,其中 0 < N ≤ 5000 0<N≤5000 0<N5000 10 ≤ C ≤ 50 10≤C≤50 10C50。随后 N N N 行,每行给出一个学校的缩写(为长度不超过 6 的非空小写英文字母串)和该校参赛人数(不超过 500 的正整数),其间以空格分隔。题目保证每所学校只有一条记录。

输出格式:

按照输入的顺序,对每一所参赛高校,在一行中输出学校缩写和该校需要联系的监考人数,其间以 1 空格分隔。
最后在一行中输出系统中应该开设多少个赛场。

输入样例:

10 30
zju 30
hdu 93
pku 39
hbu 42
sjtu 21
abdu 10
xjtu 36
nnu 15
hnu 168
hsnu 20

输出样例:

zju 1
hdu 4
pku 2
hbu 2
sjtu 1
abdu 1
xjtu 2
nnu 1
hnu 6
hsnu 1
16
#include <bits/stdc++.h>
using namespace std;int main()
{int n,c;cin>>n>>c;int res=0;priority_queue<int> Q;for(int i=0;i<n;i++){string s;int x;cin>>s>>x;cout<<s<<" "<<(x+c-1)/c<<endl;res+=x/c;if(x%c) Q.push(x%c);}vector<int> saichang;while(!Q.empty()){int t=Q.top();Q.pop();bool ok=false;for(int i=0;i<saichang.size();i++)if(t<=c-saichang[i]){ok=true;saichang[i]+=t;break;}if(!ok){saichang.push_back(t);res++;}}cout<<res;return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分析数学成绩,尽然我考了0分

编程语言:Python 简单的数据分析 导入 pygal 废话不多说直接上代码&#xff01; import pygal radar_chart pygal.Radar() radar_chart.title 数学考试成绩分析 radar_chart.x_labels [班长, 学委, 体育委员, 学渣, 学霸,我] radar_chart.add(高三(5)班, [86, 96, 69, 49, …

T06 成绩排序

查找和排序 题目&#xff1a;输入任意&#xff08;用户&#xff0c;成绩&#xff09;序列&#xff0c;可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 示例&#xff1a; jack 70 peter 96 Tom 70 smith 67 从高到低 成…

Quick Request使用教程

一、基本介绍 Quick Request作为IntelliJ IDEA的插件&#xff0c;提供给开发人员更好的调试体验&#xff0c;当前可支持Spring Mvc、Dubbo框架的所有请求&#xff0c;具有简单易用、自动生成请求参数、项目环境管理、历史请求记录、保存请求及快速搜索的特点&#xff0c;下面给…

python爬虫二十四:js逆向破解(一)

1、环境搭建 通过python代码模拟js去生成加密数据完成数据破解&#xff0c;需要用到PyExecJS模块 ①安装模块pip install pyexecjs通过模块的方法来读取js代码&#xff0c;也可以用js2py(不更新维护了)、selenium(driver.wxecute_script(js代码))去执行js文件&#xff0c;这里…

关于ref哪怕在$nextTick()中有时候获取不到节点元素的问题。(较为诡异的bug)

我的需求是用element-ui的messagebox&#xff0c;来实现验证码接受的功能。并将cancel按钮换成刷新功能&#xff0c;在beforeClose中实现验证码刷新。元素都是在$msgbox中生成的&#xff0c;下面是最开始出错的核心代码。 let result await this.$API.reqCaptchaImg();this.ca…

微信小程序实现分页加载,触底加载下一页,滚动加载

这里我就不写wxml了&#xff0c;就是一个列表循环&#xff0c;直接看js代码逻辑&#xff0c;注释都写在代码后面了&#xff0c;这个方法可以实现无限滚动加载&#xff0c;直到加载完最后一条数据&#xff0c;也可以实现触底没数据后&#xff0c;二次触底可以从新加载刷新&#…

某地刑侦大队对涉及6个嫌疑人的一桩疑案进行分析

&#xff08;1&#xff09;A、B 至少有一人作案&#xff1b; &#xff08;2&#xff09;A、E、F 三人中至少有两人参与作案&#xff1b; &#xff08;3&#xff09;A、D 不可能是同案犯&#xff1b; &#xff08;4&#xff09;B、C 或同时作案&#xff0c;或与本案无关&#xf…

今天,微软重新发明搜索引擎:首款ChatGPT搜索来了

从现在起&#xff0c;比 ChatGPT 更强大的语言模型直接进入了你的浏览器。 一夜之间&#xff0c;全球最大的科技公司仿佛都回到了自己年轻时的样子。 在谷歌宣布「实验性对话式人工智能服务」Bard 之后仅 24 小时&#xff0c;北京时间 2 月 8 日凌晨两点&#xff0c;微软发布了…

嵌入式工程师的入门须知----亲测

嵌入式工程师的学习路线----亲测 本文概述入门之前必做竭尽所能了解嵌入式技术与职业规划正确认识自己 我眼中的嵌入式技术我眼中的职业规划我的入门之路总结 本文概述 这是一篇关于想要踏进嵌入式技术之路与相关职业规划的建议性文档&#xff0c;文中观点仅限于个人对于嵌入式…

嵌入式软件工程师面试必备技能

随着当前信息化网络技术在各行业的快速普及&#xff0c;嵌入式系统在技术领域呈现了前所未有的发展趋势&#xff0c;作为一个正在崛起的热门IT行业&#xff0c;人才的匮乏已经成为了嵌入式开发行业发展过程中呈现出的一种现象。据相关部门统计&#xff0c;我国目前嵌入式软件工…

电子通信、嵌入式工程师的面试指南

作者&#xff1a;火哥 授权转载自公众号嵌入式老鸟的职场之道(id&#xff1a;ict_embedded)&#xff0c;火哥也是我们的校园代理 火哥自从校招找工作到现在&#xff0c;面试过不下50家公司&#xff0c;拿到过不少于30个offer。虽然不能说百战百胜&#xff0c;但是也还算有着较…

嵌入式软件工程师培训:提升技能、实现卓越

如果您对嵌入式培训感兴趣&#xff0c;以下是一些建议和关键点&#xff0c;可以帮助您进行嵌入式培训&#xff1a; 培训目标&#xff1a;明确确定您的嵌入式培训目标。是为了提升员工的技能水平&#xff0c;使他们能够承担更高级别的嵌入式开发工作&#xff0c;还是为了向非嵌入…

嵌入式工程师常用的软件工具推荐

前言&#xff1a;常言道&#xff1a;工欲善其事&#xff0c;必先利其器。作为一名合格的嵌入式工程师&#xff0c;日常可能需要接触和处理各种奇奇怪怪的问题&#xff0c;这时候一款高适配性的工具将会令工作效率大大提升。作者根据个人的实际使用情况与粉丝的客观感受&#xf…

软考中级-嵌入式系统设计师(一)

第一章 硬件基础 1、嵌入式微处理器结构 ARM采用哈佛结构&#xff0c;是一种RISC体系结构的微处理器。 DSP&#xff08;数字信号处理技术&#xff09;采用哈佛结构&#xff0c;具有专门的硬件乘法器&#xff0c;广泛采用流水线操作&#xff0c;提供特殊的指令&#xff0c;可以用…

嵌入式软件工程师学习路线图

人们去学习嵌入式的话&#xff0c;最后也是想成为嵌入式软件工程师的&#xff0c;这对于学习嵌入式学员来说还是有些难度的&#xff0c;所以这回小编就给大家介绍下嵌入式软件工程师学习路线图吧。 点击获取1V1嵌入式学习规划&#xff0c;现在还送100G精选学习资料。&#xff0…

嵌入式工程师的『2022 || 2023』

因为一些个人关系&#xff0c;2022年初我从北京回到了石家庄。在找工作&#xff0c;包括后续的研发工作中&#xff0c;不同地点的经历在对比中我逐渐总结出了一些经验。关于“人”方面的感悟我就不赘述了&#xff0c;下面主要在这里总结一些找工作&#xff0c;做工作的经验&…

嵌入式工程师必备开发工具

其实入行也有2年了&#xff0c;这两年用到了不少的开发工具&#xff0c;我猜大家很多也都用到过。这里主要是讲一下用到那些工具&#xff0c;安装自己去找教程吧&#xff01;毕竟安装这些软件可比开发容易多了&#xff01; 1.KEIL5 嵌入式产品开发写代码用到的工具。STM32相关…

送5本新出版《趣学算法(第2版)》

文末赠书 学大家在学习算法时遇到的各种困难&#xff1a;看不懂、题目刷了忘然后忘了刷、大部头算法书啃不动。甚至不少人学算法都开始怀疑自己是不是太笨不适合编程了…… 如何轻松学算法&#xff1f; 今天给大家推荐一本《趣学算法&#xff08;第2版&#xff09;》。这本书第…

Python趣味代码整合之提升学生编程兴趣

这篇文章主要是整合一些趣味代码&#xff0c;一方面自己对这些内容比较感兴趣&#xff0c;另一方面希望这些代码能提升学生的编程兴趣&#xff0c;其主旨是代码能在我的电脑上运行并有些趣味。 参考资料&#xff1a; 知乎 - 可以用 Python 编程…

趣学算法第二次

14天阅读挑战赛一、一棋盘的麦子 计算一棋盘的麦子&#xff0c;python代码如下&#xff1a; import matplotlib.pyplot as plt s[] def cal(n):sum0i0while i<n:sumsumpow(2,i)i1s.append(sum)return s nint(input("请输入一个数&#xff1a;")) xrange(n1) for …