码迷,mamicode.com
首页 > 其他好文 > 详细

活动安排

时间:2020-01-03 23:26:45      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:res   org   hub   master   结束时间   blob   排序   直线   权重   

背景:给定N个活动,以及他们的开始时间和结束时间。

  1. 求最大兼容的活动个数或者(穿过所有的区间,需要的直线条数) 
  2. 活动带权重,求收益最大
    • 按照最早结束时间排序
    • dp[i] 以第 i 个活动作为结尾的最大收益
    • 转移方程:dp[i]= max(dp[i],dp[j]+g[i].v)
    • j是能放在第i个活动前面的活动。
    • 例题   poj  Milking Time   AC代码
  3. 安排所有的活动最少需要几个教室
    • 活动按照最早开始时间进行排序
    • 建立优先队列(小顶堆),关键字是该教室里目前安排的活动的最晚结束时间
    • 将活动与优先队列的堆顶元素进行比较,如果活动的开始时间小于堆顶元素记录的结束时间,新开一个教室。
    • 如果活动的开始时间大于堆顶元素记录的结束时间,将该活动安排在该教室,更新该教室里活动的最晚结束时间。
    • 例题:poj 3190    AC代码

活动安排

标签:res   org   hub   master   结束时间   blob   排序   直线   权重   

原文地址:https://www.cnblogs.com/cyj1258/p/12147129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!