300. 任务安排1
题目链接
300. 任务安排1
有 个任务排成一个序列在一台机器上等待执行,它们的顺序不得改变。
机器会把这 个任务分成若干批,每一批包含连续的若干个任务。
从时刻 开始,任务被分批加工,执行第 个任务所需的时间是 。
另外,在每批任务开始前,机器需要 的启动时间,故执行一批任务所需的时间是启动时间 加上每个任务所需时间之和。
一个任务执行后,将在机器中稍作等待,直至该批任务全部执行完毕。
也就是说,同一批任务将在同一时刻完成。
每个任务的费用是它的完成时刻乘以一个费用系数 。
请为机器规划一个分组方案,使得总费用最小。
输入格式
第一行包含整数 。
第二行包含整数 。
接下来 行每行有一对整数,分别为 和 ,表示第 个任务单独完成所需的时间 及其费用系数 。
输出格式
输出一个整数,表示最小总费用。
数据范围
,
,
输入样例:
输出样例:
解题思路
斜率优化dp
很容易想到一个暴力做法: 表示前 个物品分为 批的最小代价,这样状态数为 ,另外转移需要 ,故总时间复杂度为 ,而且本题空间限制比较严格,内存受限
主要难点在于启动时间 的处理,设 表示前 个物品时间的前缀和, 表示前 个物品费用的前缀和,不妨对未来的角度考虑:对于一个启动时间,其对后面所有任务的影响为 ,即可以提前计算对未来的影响,故可以得到:
-
状态表示: 表示前 的物品的最小代价
-
状态计算:,其中 为前一批的最后一个物品的编号
-
时间复杂度:
代码
__EOF__

本文作者:acwing_zyy
本文链接:https://www.cnblogs.com/zyyun/p/16965973.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/zyyun/p/16965973.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!