题目链接:3616 -- Milking Time
题面:
题意:有一只奶牛,有m次工作的机会,给定开始时间和结束时间和工资,每次工作完了以后会休息r小时,问最多可以拿到多少工资
思路:动态规划,如果我们选择在某个时间段工作, 那么我们就可以从结束时间开始到n都获得工资,由此可以得到状态转移方程:
dp[j] = max(dp[j], dp[max(0, arr[i].l - r)] + arr[i].val);
但是这样子总时间为n,那么时间复杂度就是O(n*m),会tle,我们可以通过离散化的方式,将总时间差不多将到2*m,时间复杂度为O(m*m)即可
#include
#include
#include
#include
#include
#include
#include
#include
#include
评论列表(0条)