2021 RoboCom 世界机器人开发者大赛-本科组(复赛):拼题A打卡奖励
拼题 A 的教超搞打卡活动,指定了 N 张打卡卷,第 i 张打卡卷需要 mi 分钟做完,完成后可获得 ci 枚奖励的金币。活动规定每张打卡卷最多只能做一次,并且不允许提前交卷。活动总时长为 M 分钟。请你算出最多可以赢得多少枚金币?
输入格式:
输入首先在第一行中给出两个正整数 N(≤103) 和 M(≤365×24×60),分别对应打卡卷的数量和以“分钟”为单位的活动总时长(不超过一年)。随后一行给出 N 张打卡卷要花费的时间 mi(≤600),最后一行给出 N 张打卡卷对应的奖励金币数量 ci(≤30)。上述均为正整数,一行内的数字以空格分隔。
输出格式:
在一行中输出最多可以赢得的金币数量。
输入样例:
5 110
70 10 20 50 60
28 1 6 18 22
输出样例:
40
样例解释:
选择最后两张卷子,可以在 50+60=110 分钟内获得 18+22=40 枚金币。
做法
01背包问题。
dp数组第一维是考虑了前i个卷子,第二维是花费的时间。
#include<bits/stdc++.h>
using namespace std;
int n,m;
int ans=-0x3f3f3f3f;
int a[1010],b[1010];
int dp[1010][600000];
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=n;i++) scanf("%d",&b[i]);memset(dp,-0x3f,sizeof(dp));dp[0][0]=0;for(int i=1;i<=n;i++){//考虑前i个 for(int j=0;j<=m;j++){if(j>=a[i]) dp[i][j]=max(dp[i][j],dp[i-1][j-a[i]]+b[i]);dp[i][j]=max(dp[i][j],dp[i-1][j]);//别忘了更新当前的 }}for(int i=0;i<=m;i++) ans=max(ans,dp[n][i]);cout<<ans;
}
但是吧,dp数组超空间了,得改成1维数组。
#include<bits/stdc++.h>
using namespace std;
int n,m;
int ans=-0x3f3f3f3f;
int a[1010],b[1010];
int dp[600000];
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=n;i++) scanf("%d",&b[i]);memset(dp,-0x3f,sizeof(dp));dp[0]=0;for(int i=1;i<=n;i++){for(int j=m;j>=0;j--){//倒序 if(j>=a[i]) dp[j]=max(dp[j],dp[j-a[i]]+b[i]);}}for(int i=0;i<=m;i++) ans=max(ans,dp[i]);cout<<ans;
}
这么交上去结果运行超时了,有几个的过不去。为什么呢,因为我们的m太大了。那我们就把dp数组的下标表示为金币,而不是时间。注意dp数组初始化的值
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[1010],b[1010];
int dp[30010];
int mv;
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=n;i++) scanf("%d",&b[i]),mv+=b[i];memset(dp,0x3f,sizeof(dp));//初始化的值不同dp[0]=0;for(int i=1;i<=n;i++){for(int j=mv;j>=0;j--){if(j>=b[i]) dp[j]=min(dp[j],dp[j-b[i]]+a[i]);//取最小值,因为取得相同金币,时间越少越好}}for(int j=mv;j>=0;j--){if(dp[j]<=m){cout<<j;return 0;}}
}
相关文章:
2021 RoboCom 世界机器人开发者大赛-本科组(复赛):拼题A打卡奖励
拼题 A 的教超搞打卡活动,指定了 N 张打卡卷,第 i 张打卡卷需要 mi 分钟做完,完成后可获得 ci 枚奖励的金币。活动规定每张打卡卷最多只能做一次,并且不允许提前交卷。活动总时长为 M 分钟。请你算出最多可以赢得多少枚金币&a…...
flink 大数据处理资源分配
Flink在大数据处理中的资源分配是一个复杂但至关重要的过程,它直接影响到作业的性能和稳定性。以下将从几个方面详细阐述Flink的资源分配机制和优化策略: 一、资源分配概述 Flink是一个用于无界和有界数据流处理的分布式计算框架,它通过集群…...
独立站营销新思路:携手TikTok达人,促进用户参与与品牌传播
数字化时代,品牌传播的方式发生了重大变化。尤其是TikTok,作为全球最受欢迎的短视频平台之一,其独特的社群特点和用户行为模式,对品牌独立站提供了全新的营销思路。本文Nox聚星将和大家分析TikTok社群的特点和用户行为模式&#x…...
工单管理系统能解决什么?
工单系统具备智能化派单模式工程师响应快减少员工等待时间。自定义知识库可提升工程师专业技能水平,帮助工程师迅速判断员工问题,极大提升员工报单体验。系统还能够大幅提升职能部门可以服务的用户数,有效降低专业人力成本开支,提…...
探索Facebook在人工智能领域的最新进展
在当今快速发展的科技领域中,人工智能(AI)作为一项关键技术,正在逐步改变着社交媒体的面貌。作为全球最大的社交平台之一,Facebook积极探索和应用人工智能,以提升用户体验、增强平台安全性并推动技术创新。…...
Deepspeed : AttributeError: ‘DummyOptim‘ object has no attribute ‘step‘
题意:尝试在一个名为 DummyOptim 的对象上调用 .step() 方法,但是这个对象并没有定义这个方法 问题背景: I want to use deepspeed for training LLMs along with Huggingface Trainer. But when I use deepspeed along with trainer I get …...
【Python123题库】#查询省会 #字典的属性、方法与应用
禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/140081665 参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301 有帮助麻烦点个赞 ~ ~ Python123题库 查询省会字典的属性、方法与应用 查询省会 类型…...
数据建设实践之大数据平台(一)
大数据组件版本信息 zookeeper-3.5.7hadoop-3.3.5mysql-5.7.28apache-hive-3.1.3spark-3.3.1dataxapache-dolphinscheduler-3.1.9大数据技术架构 大数据组件部署规划 node101node102node103node104node105datax datax datax ZK ZK ZK RM RM NM...
【MIT 6.5840/6.824】Lab1 MapReduce
MapReduce MapReduce思想实现思路感受 6.5840/6.824 Lab与笔记汇总 本文对应的Lab版本为MIT6.5840-Spring2024的Lab1 本博客只提供思路,不会公开任何代码 本lab耗时约6h,码量约500行 MapReduce思想 MapReduce的思想属于是比较简单的,分为两…...
如何在 C 语言中进行选择排序?
🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 📙C 语言百万年薪修炼课程 通俗易懂,深入浅出,匠心打磨,死磕细节,6年迭代,看过的人都说好。 文章目…...
开源浏览器引擎对比与适用场景:WebKit、Chrome、Gecko
WebKit与Chrome的Blink引擎对比 起源与关系: WebKit最初由苹果公司开发,用于Safari浏览器。后来,WebKit逐渐成为一个独立的开源项目,被多个浏览器厂商采用。Blink是Google基于WebKit项目分支出来的一个浏览器引擎,用于…...
DNF客户端使用
客户端使用 1、下载客户端2、配置网关连接到服务器2.1 网关设置参数:2.2 点击连接网关2.3 点击“参数设置内容立即生效” 3、使用网关生成登陆器3.1 登陆器参数设置3.2 点击增加3.3 复制网关的通信密钥,点击生成登陆器 4、复制替换相关文件4.1 复制登陆器到客户端文…...
打包时提示:Missing Gradle Project Information.或者在加载gradle时出错
1.Android打包弹出错误提示框:missing gradle project information. please check if the IDE successfully synchronized its state with the Gradble project model. 2.加载gradle出错:修复报错后 File -> Sync Project with Gradle Files...
基于前馈神经网络 FNN 实现股票单变量时间序列预测(PyTorch版)
前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对…...
Scikit Learn - 建模手册(02)--- 数据表示、估算器
Scikit Learn - 数据表示 文章目录 一、说明二、数据表格2.1 数据作为特征矩阵2.2 数据作为目标数组 三、什么是 Estimator API四、Estimator API 的使用五、指导原则六、使用 Estimator API 的步骤七、监督学习示例八、无监督学习示例 一、说明 众所周知,机器学习…...
【鸿蒙学习笔记】通过用户首选项实现数据持久化
官方文档:通过用户首选项实现数据持久化 目录标题 使用场景第1步:源码第2步:启动模拟器第3步:启动entry第6步:操作样例2 使用场景 Preferences会将该数据缓存在内存中,当用户读取的时候,能够快…...
LabVIEW航空发动机试验器数据监测分析
1. 概述 为了适应航空发动机试验器的智能化发展,本文基于图形化编程工具LabVIEW为平台,结合航空发动机试验器原有的软硬件设备,设计开发了一套数据监测分析功能模块。主要阐述了数据监测分析功能设计中的设计思路和主要功能,以及…...
快速上手:前后端分离开发(Vue+Element+Spring Boot+MyBatis+MySQL)
文章目录 前言项目简介环境准备第一步:初始化前端项目登录页面任务管理页面 第二步:初始化后端项目数据库配置数据库表结构实体类和Mapper服务层和控制器 第三步:连接前后端总结 🎉欢迎来到架构设计专栏~探索Java中的静态变量与实…...
产品推荐| 长江存储eMMC嵌入式储存 YMTC EC230
产品详情 EC230是基于长江存储晶栈Xtacking3.0三维闪存架构打造的新一代eMMC 5.1嵌入式存储产品。EC230的最大顺序读取速度达330MB/s,支持动态SLC缓存,为终端设备提供稳定高性能;支持自动后台/自动节能等操作,减少设备延迟&#…...
【Linux】IP地址与主机名
文章目录 1.IP地址2.特殊IP地址3.主机名4.域名解析 1.IP地址 每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯 IP地址主要有2个版本,V4版本和V6版本 IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字,如192.168.…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...
JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...
