【算法题】数组分段

给定一个包含房间清洁时间的数组和清洁工人数,求最快完成所有房间的最短总时间。通过动态规划和二分查找的方法,找到将数组分成k段时,使得最大子段和最小的策略。动态规划状态表示前n个房间,k个清洁工的最优解。二分查找用于确定最小的桶容量,以在限制桶数k的情况下,确保所有数值能被分配到k个桶中。
摘要由CSDN通过智能技术生成

清洁工:假设有m个房间,清洁每个房间耗时用一个数组表示,10、20、30、40、50、60、70、80、90,安排n个清洁工,将连续的房间分成n份,每部分耗时求和,其最大值为此种分法的总耗时。求最快的耗时是多少。例如3个清洁工的话,10 20 30 40 50 | 60 70 | 80 90,此时是最快的,耗时为170。

题目:给定一个数组,和一个值k,数组分成k段。要求这k段子段和最大值最小。求出这个值。

解析:


  • 动态规划:

使用dp[n][k]表示前n个房间,k个清洁工的最优解

dp[n][k]=min
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值