hiho一下第91周《Events Arrangement》(前半部分)
题目大意
现在有一场持续时间为M的游乐会,在游乐会上有N种不同的表演节目,同一时间只能有一个节目进行表演。
每种节目最多可以表演K次,且每种节目具有自己的三个属性值a[i]
,b[i]
,c[i]
。
当一个节目在时间剩余p开始时,它会产生a[i]-(M-p)*b[i]
的价值,这个节目会持续c[i]
个单位时间。
此外由于最后有结束致辞,所以需要空出最后1个单位时间。
求问,怎么安排表演节目,可以使得产生的总价值最大。
解题思路
前半部分,通过道动态规划来计算每个物品的价值。
价值可以通过a[i]-(M-P)*b[i]表示。
其中只有P是变量,其他都为常量。所以用一个函数表示
f(p) = a[i]-(M-p)*b[i] 持续c[i]的时间。
= a[i]-M*b[i] + p*b[i]
_______ _____
A B
分为AB部分,A部分对每种节目都是常量,B部分随活动开始时间改变。
选好一系列活动之后A部分价值以及确定,只需对B部分价值进行排序,使B部分价值最大。
用p[i]表示第i个活动开始时候的剩余时间。B部分的价值:
PriceB=p[i]*b[i];
i,j为2个相邻的活动
i-1,i,j,j+1。p在i和i-1之间。
交换i,j的位置只会改变p[i],p[j]
转载于:https://www.cnblogs.com/SeekHit/p/5330124.html
hiho一下第91周《Events Arrangement》(前半部分)相关推荐
- C语言编程>第二十六周 ① 函数fun的功能是:将形参b所指数组中的前半部分元素的值和后半部分元素的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。
例题:函数fun的功能是:将形参b所指数组中的前半部分元素的值和后半部分元素的值对换.形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动. 例如,若a所指数组中的数据依次为:11 22 33 ...
- 关于“labuladong的算法小抄”的学习笔记---第0章核心框架汇总的前半部分框架(c++版)
目录 作者给自己的话 一.学习算法和刷题的框架思维 1.数据结构的存储方式 2.数据结构的基本操作 3.算法刷题指南 二.labuladong的刷题心得 1.算法的本质 2.数组/单链表系列算法 3. ...
- 百度图神经网络7日打卡营--DAY01前半部分 总结
首先很感谢百度AI团队这个平台,给大家请来世界级冠军来给大家做这一次的7日打卡营活动, 还提供免费的GPU算力平台,以及成熟可用的 包含刷新目前 最权威的 图神经ORB榜单的SOTA模型的 PGL 图 ...
- 生活记录:记录2020暑假前半部分时光
记录2020暑假前大半部分时光 一.引言 二.经历的事情 (一).带弟弟去南宁玩 1.第一天 2.第二天 3.第三天 4.第四天 (二)制作音乐 (三)练习开车 (四)拔智齿 三.最后留语 四.定位日 ...
- 读完《财务自由之路》前半部分后的一些想法
最近看了博多·舍费尔的<财务自由之路>,还没看完,但是有些地方让我印象比较深刻,这里做下记录. 看这书名,按理来说,我应该是对财务相关的知识增加了不少,事实却不是这样,反倒是对价值.自律. ...
- PHP计算剩余时间的2种方法,返回距离现在时间的格式,如1秒前,1分前..
第一种 把两个日期格式的字符串转化成unix时间戳,然后相减获得时间戳差.最后判断剩余时间,生成类似(2小时30分钟20秒前发布)这样的时间格式 public function gettime($ti ...
- 前后端分离开发之Vue跨域
前后端分离开发必须解决的就是跨域问题了,在这里记录一下关于在前端vue跨域的方法,以供参考 使用npm命令下载axios npm install axios 新建vue.config.js文件 目标转 ...
- hiho一下 第六周 Hihocoder #1038 : 01背包
题目1 : 01背包 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的时 ...
- 工作第十五周:上线前的惊悚
新增单词 thus far 到目前为止 nondestructive 无损的 deliberately 故意的 recursive 递归的,回归的 bulk 大量的 comprise 包含 demon ...
最新文章
- 互联网分布式微服务云平台规划分析--服务监控中心
- 洛谷P2068 统计和题解
- Python 一种接触就容易爱上的语言二
- 高压五防计算机软件安装,基于Android的新一代五防钥匙软件系统
- windows时间同步软件_有没有好用的windows时间管理软件?这款便签软件帮你
- C++ STL学习笔记(2) 容器结构与分类
- java.lang.Void类
- 循环取矩阵的某行_一文搞懂RNN(循环神经网络)基础篇
- [Python+MATLAB] 在Python中使用MATLAB (持续更新中)
- SqlPlus中退格键和方向键的设置
- 【学习Spring框架】依赖注入和控制反转异同?
- NetBean 8 创建EJB
- 锂电池放空后充不进电_锂电池充不进去电怎么办(锂电池为什么小偷不要)
- 学习笔记(2)——TransE算法(Translating Embedding)
- SystemProperties与Settings.system
- 那些年,我们曾白嫖到的图床
- SDL Trados 2019 和 2021 十月更新
- 卸载亚信科技安全助手
- MD5是摘要算法,摘要算法和加密算法区别
- SpeakToIt:Android版Siri