美食大赛的题解

目录

原题描述:

题目描述:

输入格式:

输出格式:

样例输入:

样例输出:

数据规模: 

题目大意:

主要思路:

注:

代码:


原题描述:

题目描述:

美食城正在举行一年一度的美食大赛。小 Q 是其中一位参赛选手,他有 n 个食材,第 i个食材做成菜所需要的时间为 c_i。由于新鲜度的问题,如果第 i个食材在t时间时才被做成菜,那么这道菜的美味度为 a_i-t\times b_i,其中 a_ib_i 是给定的参数。大赛时间紧张,总共只有 T 的时间。小 Q 想在 T 时间内做出的菜的美味度之和尽可能大,你能帮帮他吗?

输入格式:

第一行包含两个整数 Tn

接下来三行,每行n 个数,分别表示 a_1~a_n,b_1~b_n,c_1~c_n

输出格式:

输出一行一个数,表示答案。

样例输入:

74 1

502

2

47

样例输出:

408

数据规模: 

1\le n \le 50,其余所有数都不超过10^5

题目大意:

给你三个数组,代表n个食物,让你选择先后顺序,然后算出最优值。

主要思路:

这个题目看上去就是01背包问题,但是这不完全是01背包问题,因为它和先后顺序有关:

设有两个食物,x,y,已经耗了p的时间。

如果先煮x,再煮y。则价值为:a_x-(p+c_x) \times b_i+a_y-(p+c_x+c_y) \times b_y  设为①

如果先煮y,再煮x。则价值为:a_y-(p+c_y) \times b_y + a_x-(p+c_y+c_x)\times b_x 设为②

如果想让①>②,那化简不等式:就是c_x*b_y<c_y*b_x

所以我们根据这个排个序,再01背包就好了

注:

我们可以边01背包,边记录答案,这样就不用枚举了。

代码:

#include<bits/stdc++.h>
using namespace std;
struct m{long long a,b,c;//每种食物的属性
}x[100010];
int n,t;
long long dp[100010];
long long ans;
bool cmp(m a,m b)
{return a.c*b.b<a.b*b.c;//排序
}
int main()
{
//	freopen("sample (44).in","r",stdin);cin>>t>>n;for(int i=1;i<=n;i++){cin>>x[i].a;}for(int i=1;i<=n;i++){cin>>x[i].b;}for(int i=1;i<=n;i++){cin>>x[i].c;}sort(x+1,x+1+n,cmp);for(int i=1;i<=n;i++){for(int j=t;j>=x[i].c;j--){dp[j] = max(dp[j],dp[j-x[i].c]+x[i].a-j*x[i].b);//经典的01背包转移方程ans = max(ans,dp[j]);//边做边记录}}cout<<ans;return 0;
}

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

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

相关文章

Uniapp软件库全新带勋章功能(包含前后端源码)

源码介绍&#xff1a; Uniapp开发的软件库全新带勋章功能&#xff0c;搭建好后台 在前端找到 util 这个文件 把两个js文件上面的填上自己的域名&#xff0c;电脑需要下载&#xff1a;HBuilderX 登录账号 没有账号就注册账号&#xff0c; 然后上传文件&#xff0c;打包选择 “…

js 有关递归简单介绍

递归&#xff1a;指调用自身的函数 重点&#xff1a;递归函数必须有可以终止递归调用的语句&#xff0c;否则会导致内存溢出 递归的性能不好&#xff0c;因为在递归终止前&#xff0c;JavaScript引擎会为每一次递归分配一块内存以存储栈帧&#xff0c;随着递归的深入&#xff…

基于双树复小波变换和稀疏表示的多光谱和彩色图像融合算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 双树复小波变换原理 4.2 稀疏表示原理 4.3 基于双树复小波变换和稀疏表示的图像融合算法 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序…

补充回答一些关于枚举类型的问题

补充回答一些关于枚举类型的问题 1.枚举类型在什么时候使用 枚举类型在以下情况下特别有用&#xff1a; 有限的离散值集合&#xff1a; 当变量的取值只有有限且离散的几个选项时&#xff0c;使用枚举类型能够提高代码的可读性。例如&#xff0c;星期几、月份、颜色等。 enum W…

讲解一手CSRF,如何防御CSRF

简介&#xff1a; CSRF&#xff08;Cross-Site Request Forgery&#xff0c;跨站请求伪造&#xff09;是一种网络安全漏洞&#xff0c;它允许攻击者通过欺骗用户在当前已登录的Web应用程序上执行未经用户授权的操作。 攻击者利用用户在目标网站上已经建立的身份认证&#xff…

Vue 双向绑定:让数据与视图互动的魔法!(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【python笔记】requests模块基础总结

前言 菜某笔记总结&#xff0c;如有错误请指正。 requests用途 主要是用于发送网络请求 Requests库的主要方法和属性 rrequests.get() Response Request 对象 对象 r.cookies #打印cookie r.content #常用于图像视频等 以上内容来自2_哔哩哔哩_bilibili 发…

【Netty的线程模型】

Netty的线程模型 Netty的线程模型知识拓展单Reactor单线程模型单Reactor多线程模型主从Reactor模型 Netty的线程模型 Netty通过Reactor模型基于多路复用器接收并处理用户请求的&#xff0c;多路复用IO模型参考&#xff1a; 多路复用IO模型: 操作系统的IO模型有哪些&#xff1f…

短剧规模达到了百亿元,短剧分销成为短剧新模式

我国短剧市场规模直接突破了三百多亿元&#xff0c;目前已经是互联网的一大创业风口&#xff01; 一、短剧特点 在当下快节奏的生活中&#xff0c;短剧具有的快节奏、剧情紧凑的特点&#xff0c;符合大众对影视的需求。目前我国的短剧题材主要是言情、总裁、赘婿等&#xff0…

Jmeter 测试 MQ 接口怎么做?跟我学秒变大神!

MQ(message queue)消息队列&#xff0c;是基础数据结构 先进先出 的一种典型数据结构。一般用来解决应用解耦&#xff0c;异步消息&#xff0c;流量削锋等问题&#xff0c;实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构。 MQ 主要产品包括&#xff1a;Rabb…

基于ssm汽车养护管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本汽车养护管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

WEB渗透—PHP反序列化(一)

Web渗透—PHP反序列化 课程学习分享&#xff08;课程非本人制作&#xff0c;仅提供学习分享&#xff09; 靶场下载地址&#xff1a;GitHub - mcc0624/php_ser_Class: php反序列化靶场课程&#xff0c;基于课程制作的靶场 课程地址&#xff1a;PHP反序列化漏洞学习_哔哩…

vue3 + ts 防抖指令,节流指令,复制指令

vue3 ts 自定义指令 防抖指令&#xff0c;节流指令&#xff0c;复制指令 本文使用了 element-ui , element-plus 官网 源文件 https://admin.spicyboy.cn/#/directives/debounceDirect 新建 copy.ts 文件 &#xff08;复制指令&#xff09; import type { Directive, Di…

12.6每日一题(备战蓝桥杯程序的控制结构)

12.6每日一题&#xff08;备战蓝桥杯程序的控制结构&#xff09; 题目 1638: 【入门】判断正负数或零题目描述输入输出样例输入样例输出来源/分类 题解 1638: 【入门】判断正负数或零题目 1348: 【入门】求绝对值题目描述输入输出样例输入样例输出来源/分类 题解 1348: 【入门】…

【Qt开发流程】之2D绘图2:坐标系统

概述 Qt的坐标系统由QPainter类控制。QPainter与QPaintDevice和QPaintEngine 类一起构成了Qt的绘画系统的基础。QPainter用于执行绘图操作&#xff0c;QPaintDevice是一个二维空间的抽象&#xff0c;可以使用QPainter在其上绘制&#xff0c;QPaintEngine 提供了QPainter用于在…

java--Stream流常见的中间方法和终结方法

1.Stream流常见的中间方法 中间方法指的是调用完成后会返回新的Stream流&#xff0c;可以继续使用(支持链式编程) 2.Stream流常见的终结方法 ①终结方法指的是调用完成后&#xff0c;不会返回新Stream了&#xff0c;没法继续使用流了。 ②收集Stream流&#xff1a;就是把Stre…

MySQL执行流程_执行一条select语句,期间发生了什么

文章目录 执行一条select语句&#xff0c;期间发生了什么MySQL执行流程第一步&#xff1a;连接器第二步&#xff1a;查询缓存第三步&#xff1a;解析SQL第四步&#xff1a;执行SQL 执行一条select语句&#xff0c;期间发生了什么 MySQL执行流程 server层负责建立连接、分析和执…

SpringAMQP

目录 利用SpringAMQP实现HelloWorld中的基础消息队列功能: 1&#xff0e;在父工程中引入spring-amqp的依赖 2&#xff0e;在publisher服务中利用RabbitTemplate发送消息到simple.queue这个队列 3&#xff0e;在consumer服务中编写消费逻辑&#xff0c;绑定simple.queue这个…

Python Bokeh库详解:交互式数据可视化

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 数据可视化在数据分析和科学研究中起着至关重要的作用。而Bokeh&#xff08;发音为“bo-kay”&#xff09;是一个强大的Python交互式可视化库&#xff0c;提供了丰富的工具和功能&#xff0c;使得创建交互式、吸…