`

带权区间调度

 
阅读更多

问题:有一组需求{1,...,n},每个需求i有一个开始结束时间s(i),f(i)对应,同时每个需求有一个权值vi,如果两个需求没有在时间上重叠,我们就说需求是相容的,求一个相容子集,使得权值之和最大化。

 

需要动态规划了:

首先按照结束时间f排序,升序,O(nlogn) 。

则递归解为:opt(i) = max(opt(p(i))+vi,opt(i-1)),O(n) 。

其中,p(i)是最右边的在i结束开始之前结束的需求j。

 

改天上代码。。。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics