2023年华为OD机试(python)B卷-高效的任务规划

一、题目

题目描述:

你有 n 台机器编号为 1~n,每台都需要完成完成一项工作,机器经过配置后都能完成独立完成一项工作。
假设第i台机器你需要花B分钟进行设置,然后开始运行,J分钟后完成任务。
现在,你需要选择布置工作的顺序,使得用最短的时间完成所有工作。
注意,不能同时对两台进行配置,但配置完成的机器们可以同时执行他们各自的工作。

二、输入输出

输入描述:
第一行输入代表总共有 M 组任务数据(1<M<=10)。
每组数第一行为一个整数指定机器的数量 N(0<N<=1000)。
随后的 N 行每行两个整数,第一个表示 B(0<=B<=10000),第二个表示 J(0<=J<=10000)。
每组数据连续输入,不会用空行分隔。各组任务单独计时。
输出描述:
对于每组任务,输出最短完成时间,且每组的结果独占一行。
例如,两组任务就应该有两行输出。

三、示例

示例1:
输入输出示例仅供调试,后台判题数据一般不包含示例
输入:
1
1
2 2
输出:
4
解释:
第一行1为一组任务,第二行1代表只有一台机器,第三行表示该机器配置需2分钟,执行需2分钟。

示例2:
输入输出示例仅供调试,后台判题数据一般不包含示例
输入:
2
2
1 1
2 2
3
1 1
2 2
3 3
输出:
4
7
解释:
第一行2代表两组任务,
第二行2代表第一组任务有2个机器,
第三行1 1代表机器1配置需要1分运行需要1分,
第四行2 2代表机器2配置需要2分运行需要2分,
第五行3代表第二组任务需要3个机器,
第6-8行分别表示3个机器的配置与运行时间。

六、参考代码 

# -*- coding: utf-8 -*-
'''
@File    :   2023-B-高效的任务规划.py
@Time    :   2023/12/28 01:37:31
@Author  :   mgc 
@Version :   1.0
@Desc    :   None
'''

# import os
# import re
# import sys
# import copy
# import math
# import queue
# import functools
# from queue import Queue
# from collections import Counter, defaultdict

def calculateMaxTime():
    m = int(input())  # 输入任务组数

    while m > 0:
        m -= 1

        n = int(input())  # 输入机器数量

        a = []
        for i in range(n):
            x, y = map(int, input().split())  # 输入每台机器的设置时间(x)和执行时间(y)
            a.append([y, x])

        a.sort(reverse=True)  # 按照执行时间(y)降序排序

        ans = 0  # 最大完成时间
        now = 0  # 当前完成时间

        for y, x in a:
            now += x  # 累加设置时间(x)
            ans = max(ans, now + y)  # 更新最大完成时间

        print(ans)  # 输出最大完成时间


# 调用主函数
if __name__ == '__main__':
    calculateMaxTime()

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

骑砍战团MOD开发(27)-module_tableau_materials.py材质

一.配置材质资源 OpenBrf寻找对应材质资源. tableau配置材质资源 ("round_shield_1", 0, "sample_shield_round_1", 512, 256, 0, 0, 0, 0,[(store_script_param, ":banner_mesh", 1),(set_fixed_point_multiplier, 100),(init_position, pos1),…

证件照3秒换底色|有手机就行,一学就会

友友们&#xff0c;你还在求你的设计师朋友给你证件照换底色吗&#xff1f; 支付宝搜索"亿鸣证件照"小程序或微信搜索"随时照"小程序&#xff0c;选择"换底色”功能&#xff0c;上传一张个人生活照&#xff0c;就能一键换底色了&#xff0c;再也不用求…

MySQL的高级SQL语句

目录 1.mysql高阶查询 select&#xff1a;显示表格中一个或数个字段的所有数据记录 distinct&#xff1a;不显示重复的数据记录 where&#xff1a;有条件查询 AND OR &#xff1a;且 或 in&#xff1a;显示已知值的数据记录 between&#xff1a;显示两个值范围内的数据记…

Elasticsearch:升级索引以使用 ELSER 最新的模型

在此 notebook 中&#xff0c;我们将看到有关如何使用 Reindex API 将索引升级到 ELSER 模型 .elser_model_2 的示例。 注意&#xff1a;或者&#xff0c;你也可以通过 update_by_query 来更新索引以使用 ELSER。 在本笔记本中&#xff0c;我们将看到使用 Reindex API 的示例。…

FPGA 底层资源介绍

Xilinx FPGA底层资源介绍 本文转载自&#xff1a;瓜大三哥微信公众号 XILINX FPGA 芯片整体架构如下所示&#xff0c;整个芯片是以BANK进行划分的&#xff0c;不同的工艺、器件速度和对应的时钟具有不同的BANK数量&#xff08;下面截图是以K7325tffg676为例&#xff09;&…

【Unity入门】UGUI之Slider(滑动条)

目录 什么是Slider&#xff1f;Slider属性与功能 什么是Slider&#xff1f; Slider控件允许用户可以通过鼠标来在预先确定的范围调节数值 我们可以在Hierarchy视图右键 -> UI ->Slider来创建滑动条 通过上图可以发现Unity内置的Slider主要有3部分&#xff0c;一个是最…

还在用Jekins?快来试试这款比Jekins简而轻的自动部署软件!

大家好&#xff0c;我是 Java陈序员。 在工作中&#xff0c;你是否遇到过团队中没有专业的运维&#xff0c;开发还要做运维的活&#xff0c;需要自己手动构建、部署项目&#xff1f; 不同的项目还有不同的部署命令&#xff0c;需要使用 SSH 工具连接远程服务器和使用 FTP 文件…

【算法】枪打出头鸟(js)

牛客链接&#xff1a;https://www.nowcoder.com/practice/1504075c856248748ca444c8c093d638?tpId196&&tqId37268&rp1&ru/ta/job-code-total&qru/ta/job-code-total/question-ranking 本人题解&#xff1a; /*** 代码中的类名、方法名、参数名已经指定&a…

Go 如何通过代码进行格式化 gomft命令

我们都知道 使用JetBrains GoLand 快捷键可以快速对代码进行格式化 现在将使用go的代码进行格式化 源代码如下&#xff1a; package mainimport "fmt"func main() {var n1 int 19var n2 float32 4.78//var n3 bool false//var n4 byte avar s1 string…

Oracle VirtualBox中Linux系统基本使用方法——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

前言 小北的这篇博客介绍的是关于用VirtualBox中下载好的ubuntu系统中&#xff0c;为搭建Hadoop平台所做的命令操作准备&#xff0c;希望能帮助不会的人有指引作用。 没有安装好VirtualBox中的ubuntu系统的请参考小北之前的两篇博客&#xff1a; ubuntu18.04 64 位安装笔记—…

node fs模块写入文件 writeFile、writeFileSync、fsPromises.writeFile、createWriteStream

文章目录 1.writeFile2.writeFileSync3.fsPromises.writeFile4.createWriteStream 1.writeFile 它是一个异步写入的方法 函数参数 file <string> | <Buffer> | <URL> | <integer> 文件名或文件描述符 data <string> | <Buffer> | <Typ…

安装 PyQt5 保姆级教程

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 前言 博主之前做应用层开发用的一直是 Qt&#xff0c;这次尝试一下在 python 中使用 Pyqt5 模块来开发 UI 界面&#xff0c;这里做一些…

RabbitMQ是做什么的

rabbitMQ是做异步通讯的。用于解决同步同讯的拓展性差&#xff0c;级联失败的问题。 异步调用方式其实就是基于消息通知的方式&#xff0c;一般包含三个角色:。 消息发送者:投递消息的人&#xff0c;就是原来的调用方 消息代理:管理、暂存、转发消息&#xff0c;你可以把它理…

第 1 场 算法季度赛 蓝桥搜狐畅游(1~5 , 7)

1、水题 2、树上dp 3、模拟 4、概率 5、拆位 6、&#xff08;是没学过的东西了...&#xff09; 7、组合数学 1. 新年快乐【算法赛】 直接模拟 #include <iostream> using namespace std; int main() {cout <<"2024 AK";return 0; } 2. 蓝桥圣诞树…

VS2019 驱动两个函数地址相同?

VS2019对于两个函数名不同&#xff0c;但是函数代码实现相同的情况&#xff0c;在链接时会将两个函数合并为同一个代码段&#xff0c;导致两个函数的地址相等。代码如下&#xff1a; #include <wdm.h>static void InnerFunc(int i, const char* name) {DbgPrint("i…

C语言字符串知识点和算法总结

目录 一、字符串遍历 1、字符串和字符数组 2、获取字符串长度 3、字符串遍历 4、大小写转换 5、字符串数组 二、字符串拷贝 三、字符串比较 四、字符串分割 五、字符串翻转 1、题目详解 2、算法详解 3、源码剖析 六、回文串 1、定义 2、例题讲解 3、算法详解 …

数据库进阶教学——读写分离(Mycat1.6+Ubuntu22.04主+Win10从)

目录 1、概述 2、环境准备 3、读写分离实验 3.1、安装jdk 3.2、安装Mycat 3.3、配置Mycat 3.3.1、配置schema.xml ​​​​3.3.2、配置server.xml 3.4、修改主从机远程登陆权限 3.4.1、主机 3.4.2、从机 3.5、启动Mycat 3.6、登录Mycat 3.7、验证 1、概述 读写分…

Linux自定义shell编写

Linux自定义shell编写 一.最终版本展示1.动图展示2.代码展示 二.具体步骤1.打印提示符2.解析命令行3.分析是否是内建命令1.shell对于内建名令的处理2.cd命令3.cd函数的实现4.echo命令的实现5.export命令的实现6.内建命令函数的实现 4.创建子进程通过程序替换执行命令5.循环往复…

在markdown中添加视频的两种方法

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置&#xff0c;前后端开发环境的配置&#xff0c;编辑器的配置&#xff0c;网络服务的配置&#xff0c;网络命令的应用与配置&#xff0c;windows常见问题的解决等。 文章目录 方式一源代码: 方式二结尾语网络的梦想 markd…

UniApp小程序使用vant引入vant weapp

HBuilder X里新建项目指路 HBuilderX新建项目 安装node.js指路 安装node.js 1.通过npm安装 查看npm环境 //打开终端输入命令查看版本 npm -version 1.1.右键打开外部终端窗口 1.2.输入npm init -y命令 1.3.通过命令安装 npm i vant/weapp1.3.3 -S --production 1.4.打开工具…