2023华为OD机试真题-工作安排(JAVA、Python、C++)

2023-11-07

题目描述:
小明每周上班都会拿到自己的工作清单,工作清单内包含n项工作,每项工作都有对应的耗时时长(单位h)和报酬,工作的总报酬为所有已完成工作的报酬之和。那么请你帮小明安排一下工作,保证小明在指定的工作时间内工作收入最大化。
输入描述:
输入的第一行为两个正整数T,n。T代表工作时长(单位h,0 < T < 100000),n代表工作数量(1 < n ≤ 3000)。
接下来是n行,每行包含两个整数t,w。t代表该项工作消耗的时长(单位h,t > 0),w代表该项工作的报酬。
输出描述:
输出小明指定工作时长内工作可获得的最大报酬。
补充说明:
 收起
示例1
输入:
40 3
20 10
20 20
20 5
输出:
30
 

import java.util.Scanner;
import java.util.*;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        int n = sc.nextInt();
 
        int res = 0;
        int[] tarr = new int[n];
        int[] warr = new int[n];
        for (int i = 0; i < n; i++) {
            int t = sc.nextInt();
            int w = sc.nextInt();
            tarr[i] = t;
            warr[i] = w;
        }
 
        //动态规划
        int[][] dp = new int[n + 1][T + 1];
 
        //初始化
        for (int i = 0; i < T + 1; i++) {
            dp[0][i] = 0;
        }
        for (int j = 0; j < n + 1; j++) {
            dp[j][0] = 0;
        }
 
        for (int i = 1; i < n + 1; i++) {
            for (int j = 1; j < T + 1; j++) {
                //如果剩余时间还能干第j个工作
                if (tarr[i - 1] <= j) {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - tarr[i - 1]] + warr[i - 1]);
                }
            }
        }
 
        res = dp[n][T];
        System.out.println(res);
    }
}
T, n = map(int, input().split())
Time_pay = []
while True:
    try:
        time, num = map(int, input().split())
        Time_pay.append((time, num))
    except:
        break
time = [i[0] for i in Time_pay]
value = [i[1] for i in Time_pay]
total_time = T
dp = [0] * (total_time + 1)
for i in range(len(time)):
    for j in range(total_time, time[i]-1, -1):
        dp [j] = max(dp[j], dp[j - time[i]] + value[i])
print(dp[-1])
#include<iostream>
#include<vector>
using namespace std;
int main(){
    int T,n;
    cin>>T>>n;
    vector<int> t(n,0);
    vector<int> w(n,0);
    for(int i=0;i<n;i++){
        cin>>t[i]>>w[i];
    }
    vector<vector<int>>dp(n+1,vector<int>(T+1,0));
    for(int i=1;i<n+1;i++){
        for(int j=1;j<T+1;j++){
            dp[i][j]=j>=t[i-1]?max(dp[i-1][j],dp[i-1][j-t[i-1]]+w[i-1]):dp[i-1][j];
        }
    }
    cout<<dp[n][T];
     
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023华为OD机试真题-工作安排(JAVA、Python、C++) 的相关文章

  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • GB28181视频监控国标平台EasyGBS角色绑定设备通道的功能优化

    GB28181视频监控国标平台EasyGBS是基于国标GB28181协议 支持多路设备同时接入的视频监控 视频云服务平台 支持对多平台 多终端分发RTSP RTMP FLV HLS WebRTC等格式的视频流 国标GB28181平台Easy
  • go网站收藏

    golang修养之路 go每日新闻 go语言社区 go语言设计与实现
  • 报错解决:Process finished with exit code -1073741819 (0xC0000005)

    简单记录一下程序异常终止 抛出 Process finished with exit code 1073741819 0xC0000005 的解决方法 一 程序中文件位置错误 缺少文件 位置错误1 如果使用相对路径的话 推荐换成绝对路径进行
  • 剑指 Offer 11. 旋转数组的最小数字(java+python)

    把一个数组最开始的若干个元素搬到数组的末尾 我们称之为数组的旋转 给你一个可能存在 重复 元素值的数组 numbers 它原来是一个升序排列的数组 并按上述情形进行了一次旋转 请返回旋转数组的最小元素 例如 数组 3 4 5 1 2 为 1
  • Java日志的占位符

    如果日志中是集合 且集合的对象为基本数据类型 那么占位符和基本数据类型保持一致 如果集合对象为自定义对象 那么需要获取对应的实例后再获取对应的属性 看属性的基本数据类型 如果不需要获取属性 就把对象toString后用 s接收 payloa
  • Parse方法解析字符串

    今天才注意到Parse方法解析字符串时可以通过NumberStyles枚举和IFormatProvider接口分析字符串的格式
  • Qt的事件过滤器installEventFilter

    一 介绍 WPF中使用AddHandler来监听事件 那么QT呢 Qt的事件模型是使用一个QObject对象 来监视发送其他QObject对象的事件 在事件到达之前对其进行处理 这里要使用一个函数 void QObject installE
  • Typora主题推荐

    Typora主题推荐 官网 https theme typora io 以前我用的是github主题 现在是Drake 但是字体有点小 改了css 进行微调一下 1 cobalt主题 2 Drake主题 3 fluent主题 4 gitbo
  • 读《自己动手写操作系统》(于渊著)第一节

    最近开始看 自己动手写操作系统 虽然很早以前就读过一点点 但一直没有机会动手实践 本着光说不练假把式的原则 今天动手实践了开头的一部分 说得这么正经其实你就是看了一点点吧 囧 废话不多说 在这里做一个小小的总结 实验环境 操作系统 win7
  • python实现调用科大讯飞语音听写(将音频识别成文字输出)

    一 大致流程 1 申请科大讯飞账号 https passport xfyun cn register 2 创建应用 应用平台选择WebAPI 3 查看开发文档 4 根据开发文档和示例代码进行调试 二 申请科大讯飞账号 首先我们先去科大讯飞开
  • MySQL——通过binlog恢复数据

    目录 1 binlog基本概念 2 MySQL开启binlog 3 使用binlog日志恢复数据 3 1 恢复前准备工作 3 2 数据恢复 3 2 1 通过mysqlbinlog将binlog转为sql 以方便查询具体位置 3 2 2 查看
  • 零点分布对单位脉冲响应的影响

    共四个二阶网络的系统函数 画系统零极点分布图 求各系统单位脉冲响应 画波形 H1 clc clear all close all A 1 1 6 0 9425 B 1 0 0 figure zplane B A z roots B zero
  • DM8 用户与权限管理

    一 用户及权限管理 1 1 创建用户 create user test identified by Test 1234 default tablespace test 1 2 用户改密码 alter user SYSDBA identifi
  • 【战略布局】12.8黄金白银涨跌发展趋势-黄金原油走势操作建议

    黄金消息面与技术面解析 消息面 周三 12月8日 亚市盘中 黄金期货温和上涨 现报1789美元 盎司附近 稍早期金曾短暂突破1790美元 盎司关口 周二 12月7日 金价小幅上涨 主要是受到通胀预期和地缘局势担忧的支撑 投资者将注意力聚焦将
  • Xshell突然连接不上虚拟机的解决

    目录 问题描述 失败的尝试 最终解决 感想 问题描述 国庆节后继续学习 在使用Xshell登录虚拟机时突然登不上了 而且只有三台中的一台登不上 考虑到之前对虚拟机的配置是在一台win机器上使用VMware Workstation软件创建了三
  • 锐浪(Grid++Report)报表脚本通过某些字段隐藏控件

    var panduantj Report ParameterByName leix AsString 你的字段名 var xians Report ControlByName chuchai 获取图片控件 if panduantj 出差 x
  • wps合并重复项并求和_表格技巧—Excel中重复项求和的方法

    在Excel统计数据时 经常会碰到重复项反复出现 很干扰视线 想要对重复项进行合并并求和 那要如何操作呢 下面 小编跟大家详细讲解Excel合并重复项数据并求和的操作方法 首先打开一个需要处理的Excel表格 比如对下列表格中相同型号的数量
  • Scrapy中extract_first()和extract()的区别

    测试用到的爬取网站 In 11 print response xpath h3 a title scrapy selector unified SelectorList 是Selector组成的列表 Out 11 为了方便阅读换行符我手打的
  • python降低cpu的占用

    import signal import resource import os import time from multiprocessing import Process def time exceeded signo frame ti
  • 2023华为OD机试真题-工作安排(JAVA、Python、C++)

    题目描述 小明每周上班都会拿到自己的工作清单 工作清单内包含n项工作 每项工作都有对应的耗时时长 单位h 和报酬 工作的总报酬为所有已完成工作的报酬之和 那么请你帮小明安排一下工作 保证小明在指定的工作时间内工作收入最大化 输入描述 输入的